openmerit 0.1.4 → 0.1.6-preview.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.
Files changed (147) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +121 -386
  3. package/dist/core/src/index.d.ts +101 -0
  4. package/dist/core/src/index.js +1649 -0
  5. package/dist/core/src/store.d.ts +35 -0
  6. package/dist/core/src/store.js +102 -0
  7. package/dist/pi/src/index.d.ts +32 -0
  8. package/dist/pi/src/index.js +794 -0
  9. package/dist/pi/src/scheduler.d.ts +11 -0
  10. package/dist/pi/src/scheduler.js +137 -0
  11. package/dist/pi/src/wakeup.d.ts +2 -0
  12. package/dist/pi/src/wakeup.js +108 -0
  13. package/dist/protocol/src/index.d.ts +484 -0
  14. package/dist/protocol/src/index.js +47 -0
  15. package/dist/protocol/src/schemas.d.ts +576 -0
  16. package/dist/protocol/src/schemas.js +280 -0
  17. package/dist/terminal/public/app.js +297 -0
  18. package/dist/terminal/public/brands/anthropic.png +0 -0
  19. package/dist/terminal/public/brands/baai.png +0 -0
  20. package/dist/terminal/public/brands/baseten.png +0 -0
  21. package/dist/terminal/public/brands/cerebras.png +0 -0
  22. package/dist/terminal/public/brands/cohere.png +0 -0
  23. package/dist/terminal/public/brands/deepseek.ico +0 -0
  24. package/dist/terminal/public/brands/google.png +0 -0
  25. package/dist/terminal/public/brands/groq.ico +0 -0
  26. package/dist/terminal/public/brands/lm-studio.png +0 -0
  27. package/dist/terminal/public/brands/meta.ico +0 -0
  28. package/dist/terminal/public/brands/mistral.png +0 -0
  29. package/dist/terminal/public/brands/nomic.png +0 -0
  30. package/dist/terminal/public/brands/ollama.png +0 -0
  31. package/dist/terminal/public/brands/openai.png +0 -0
  32. package/dist/terminal/public/brands/openrouter.png +0 -0
  33. package/dist/terminal/public/brands/qwen.png +0 -0
  34. package/dist/terminal/public/brands/vllm.ico +0 -0
  35. package/dist/terminal/public/brands/vllm.png +0 -0
  36. package/dist/terminal/public/favicon.svg +1 -0
  37. package/dist/terminal/public/flow.css +1 -0
  38. package/dist/terminal/public/flow.js +770 -0
  39. package/dist/terminal/public/index.html +21 -0
  40. package/dist/terminal/public/styles.css +779 -0
  41. package/dist/terminal/src/activity-merge.mjs +64 -0
  42. package/dist/terminal/src/browser.mjs +29 -0
  43. package/dist/terminal/src/cli.mjs +60 -0
  44. package/dist/terminal/src/collect.mjs +311 -0
  45. package/dist/terminal/src/discovery.mjs +93 -0
  46. package/dist/terminal/src/hardware.mjs +57 -0
  47. package/dist/terminal/src/project-activity.mjs +156 -0
  48. package/dist/terminal/src/sample.mjs +171 -0
  49. package/dist/terminal/src/server.mjs +56 -0
  50. package/dist/terminal/src/services.mjs +62 -0
  51. package/dist/terminal/src/topology.mjs +30 -0
  52. package/docs/adapter-guide.md +189 -0
  53. package/docs/architecture.md +59 -0
  54. package/docs/automation.md +74 -0
  55. package/docs/budgets.md +37 -0
  56. package/docs/commands.md +85 -0
  57. package/docs/demo-backfill.md +29 -0
  58. package/docs/demo-fieldkit.md +47 -0
  59. package/docs/demo-placement.md +30 -0
  60. package/docs/demo-spam.md +15 -0
  61. package/docs/demo-support.md +42 -0
  62. package/docs/demo.md +57 -0
  63. package/docs/first-trial.md +60 -0
  64. package/docs/getting-started.md +65 -0
  65. package/docs/index.md +40 -0
  66. package/docs/inference-terminal.md +439 -0
  67. package/docs/lifecycle.md +30 -0
  68. package/docs/memo.md +126 -0
  69. package/docs/metrics-and-evidence.md +48 -0
  70. package/docs/operations.md +40 -0
  71. package/docs/pareto-spec.md +76 -0
  72. package/docs/pi-extension.md +54 -0
  73. package/docs/roadmap.md +28 -0
  74. package/docs/security.md +37 -0
  75. package/docs/site-artwork-linocut.md +23 -0
  76. package/docs/site-artwork-miniature-diverse.md +28 -0
  77. package/docs/site-artwork-miniature.md +26 -0
  78. package/docs/site-demo.md +177 -0
  79. package/docs/site-design.md +94 -0
  80. package/docs/site-documentation.md +83 -0
  81. package/docs/site-dynamic-og.md +35 -0
  82. package/docs/site-faq-maintenance.md +115 -0
  83. package/docs/site-hero-resolution.md +60 -0
  84. package/docs/site-illustration-sequences.md +227 -0
  85. package/docs/site-inference-terminal.md +203 -0
  86. package/docs/site-memo.md +39 -0
  87. package/docs/site-og-image.md +38 -0
  88. package/docs/site-og-workshop.md +21 -0
  89. package/docs/site-section-artwork.md +56 -0
  90. package/docs/site-skill-review.md +57 -0
  91. package/docs/site-terminal-preview.md +85 -0
  92. package/docs/testing.md +118 -0
  93. package/docs/troubleshooting.md +55 -0
  94. package/docs/ux-reference.md +32 -0
  95. package/package.json +74 -42
  96. package/benchmark/invoice_ocr/data/invoice_01_ground_truth.json +0 -38
  97. package/benchmark/invoice_ocr/data/invoice_01_row_2.jpg +0 -0
  98. package/benchmark/invoice_ocr/data/invoice_02_ground_truth.json +0 -32
  99. package/benchmark/invoice_ocr/data/invoice_02_row_5.jpg +0 -0
  100. package/benchmark/invoice_ocr/data/invoice_03_ground_truth.json +0 -26
  101. package/benchmark/invoice_ocr/data/invoice_03_row_6.jpg +0 -0
  102. package/benchmark/invoice_ocr/data/invoice_04_ground_truth.json +0 -26
  103. package/benchmark/invoice_ocr/data/invoice_04_row_7.jpg +0 -0
  104. package/benchmark/invoice_ocr/data/invoice_05_ground_truth.json +0 -38
  105. package/benchmark/invoice_ocr/data/invoice_05_row_947.jpg +0 -0
  106. package/benchmark/invoice_ocr/data/invoice_06_ground_truth.json +0 -38
  107. package/benchmark/invoice_ocr/data/invoice_06_row_948.jpg +0 -0
  108. package/benchmark/invoice_ocr/data/invoice_07_ground_truth.json +0 -20
  109. package/benchmark/invoice_ocr/data/invoice_07_row_949.jpg +0 -0
  110. package/benchmark/invoice_ocr/data/invoice_08_ground_truth.json +0 -38
  111. package/benchmark/invoice_ocr/data/invoice_08_row_1888.jpg +0 -0
  112. package/benchmark/invoice_ocr/data/invoice_09_ground_truth.json +0 -26
  113. package/benchmark/invoice_ocr/data/invoice_09_row_1890.jpg +0 -0
  114. package/benchmark/invoice_ocr/data/invoice_10_ground_truth.json +0 -20
  115. package/benchmark/invoice_ocr/data/invoice_10_row_1892.jpg +0 -0
  116. package/benchmark/invoice_ocr/data/manifest.json +0 -97
  117. package/dist/benchmarks.js +0 -98
  118. package/dist/catalog.js +0 -61
  119. package/dist/cli.js +0 -188
  120. package/dist/daemon.js +0 -407
  121. package/dist/diagnostics.js +0 -227
  122. package/dist/frontier.js +0 -56
  123. package/dist/harness.js +0 -1
  124. package/dist/integrations.js +0 -19
  125. package/dist/invoice-eval.js +0 -33
  126. package/dist/invoice-score.js +0 -124
  127. package/dist/judge.js +0 -43
  128. package/dist/llm.js +0 -207
  129. package/dist/pi-config.js +0 -46
  130. package/dist/pi-trials.js +0 -373
  131. package/dist/policy.js +0 -185
  132. package/dist/providers.js +0 -1
  133. package/dist/recommend.js +0 -76
  134. package/dist/routes.js +0 -74
  135. package/dist/standalone.js +0 -224
  136. package/dist/store.js +0 -89
  137. package/dist/strategist.js +0 -68
  138. package/dist/task-input.js +0 -54
  139. package/dist/traces.js +0 -127
  140. package/dist/trials.js +0 -140
  141. package/dist/types.js +0 -2
  142. package/examples/invoice-prompt.txt +0 -19
  143. package/examples/task.example.json +0 -7
  144. package/extension/openmerit.ts +0 -947
  145. package/instructions/OPENMERIT.md +0 -63
  146. package/instructions/openmerit.policy.json +0 -37
  147. package/rules.md +0 -43
@@ -0,0 +1,779 @@
1
+ /* Dark terminal surfaces; all assets are local. */
2
+ :root{color-scheme:dark;--bg:#121212;--surface:#181818;--raised:#1e1e1e;--hover:#242424;--line:#2d2d2d;--line-soft:#262626;--text:#e7e7e7;--muted:#a2a2a2;--quiet:#848484;--accent:#e0e0e0;--local:#bcbcbc;--amber:#d0b185;--blue:#9bb8cb;--error:#d39f92;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--ease:cubic-bezier(.23,1,.32,1);--press:120ms;--reveal:220ms;--radius:12px}
3
+ *{box-sizing:border-box}
4
+ html{height:100%;scrollbar-color:#3d3d3d transparent}
5
+ body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01"}
6
+ button,input,select{font:inherit}
7
+ button,a,input{-webkit-tap-highlight-color:transparent}
8
+ button{color:inherit;cursor:pointer}
9
+ button{touch-action:manipulation}
10
+ button:disabled{opacity:.55;cursor:wait}
11
+ a{color:inherit;text-decoration:none}
12
+ button,input{outline:none}
13
+ button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
14
+ button{transition:background-color var(--press) ease,transform var(--press) var(--ease)}
15
+ button:active{transform:scale(.98)}
16
+ body.keyboard button:active{transform:none}
17
+ .mono,code,kbd,.number{font-family:var(--mono);font-variant-numeric:tabular-nums}
18
+ .number{letter-spacing:-.035em}
19
+ h1,h2,h3,p{margin:0}
20
+ h1{font-weight:500;font-size:30px;letter-spacing:-1.05px;line-height:1.2}
21
+ h2{font-size:14px;letter-spacing:-.2px;font-weight:550}
22
+ h3{font-size:13px;font-weight:550}
23
+ small{font-size:11px}
24
+ .muted{color:var(--muted)}
25
+ .quiet{color:var(--quiet)}
26
+ .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
27
+ .skip-link{position:fixed;z-index:20;top:8px;left:8px;padding:10px 18px;background:var(--raised);transform:translateY(-150%)}
28
+ .skip-link:focus{transform:none}
29
+ .boot{padding:60px;text-align:center}
30
+ .boot p{margin-top:15px;color:var(--muted)}
31
+ .chevron{color:var(--quiet);font-size:15px}
32
+ .text-button{border:0;background:none;padding:0;color:var(--muted);font-size:11px;display:inline-flex;align-items:center;gap:8px}
33
+ .status-dot{height:5px;width:5px;border-radius:50%;background:var(--local);display:inline-block;flex-shrink:0}
34
+ .status-dot.dim{background:var(--quiet)}
35
+ .status-dot.warning{background:var(--amber)}
36
+ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--line);border-radius:4px;padding:2px 5px}
37
+ .page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:29px}
38
+ .page-heading p{color:var(--muted);font-size:12px;margin-top:10px}
39
+ .heading-controls{display:flex;gap:15px;align-items:center;flex-shrink:0}
40
+ .segmented{background:#1c1c1c;border:1px solid var(--line-soft);display:flex;padding:3px;border-radius:7px;gap:1px}
41
+ .segmented button{border:0;background:transparent;padding:4px 11px;min-width:36px;font-family:var(--mono);font-size:10px;border-radius:4px;color:var(--quiet)}
42
+ .segmented button[aria-pressed=true]{background:#343434;color:var(--text);box-shadow:0 1px 3px #0002}
43
+ .collection-time{font-size:10px;color:var(--quiet);display:flex;align-items:center;gap:6px}
44
+ .button{border:1px solid var(--line);background:var(--raised);border-radius:7px;padding:8px 12px;color:var(--text);font-size:11px;display:inline-flex;gap:8px;align-items:center}
45
+ .button.primary{background:var(--accent);color:#282828;border-color:var(--accent)}
46
+ .button svg{width:13px;height:13px}
47
+ .button.subtle{background:transparent;color:var(--muted)}
48
+ .summary-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:30px}
49
+ .summary{padding:19px 22px 20px;min-width:0;position:relative}
50
+ .summary:first-child{padding-left:0}
51
+ .summary+.summary:before{content:"";position:absolute;left:0;top:22px;bottom:23px;width:1px;background:var(--line)}
52
+ .summary-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}
53
+ .summary-value{font-size:30px;line-height:1.25;font-weight:450;margin-top:12px;letter-spacing:-1.2px;font-variant-numeric:tabular-nums}
54
+ .summary-value .unit{font-size:16px;color:var(--quiet);letter-spacing:-.3px}
55
+ .summary-bottom{font-size:10px;color:var(--quiet);margin-top:8px;display:flex;gap:8px;align-items:center;min-height:15px}
56
+ .summary-spark{position:absolute;width:74px;height:28px;right:22px;top:47px;opacity:.85}
57
+ .sample-disclosure{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #3c3829;border-radius:7px;padding:9px 13px;background:#1d1d16;margin-bottom:23px;font-size:11px;color:#b5ac94}
58
+ .sample-disclosure button{font-size:10px;background:transparent;border:0;color:#d0c6ad;padding:2px}
59
+ .notice{padding:11px 14px;background:#28231a;border:1px solid #4b412c;border-radius:7px;color:var(--amber);margin-bottom:18px;font-size:12px}
60
+ .overview-top{display:grid;grid-template-columns:minmax(0,1fr) 277px;gap:22px;margin-bottom:28px}
61
+ .panel{border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden;background:var(--surface)}
62
+ .panel-head{padding:19px 21px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
63
+ .panel-head p{color:var(--quiet);font-size:10px;margin-top:4px}
64
+ .panel-action{background:transparent;border:0;color:var(--quiet);font-size:15px;padding:4px;line-height:1}
65
+ .panel-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--quiet)}
66
+ .map-labels{display:grid;grid-template-columns:repeat(3,1fr);padding:21px 24px 1px;font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--quiet)}
67
+ .map-labels span:nth-child(2){text-align:center}
68
+ .map-labels span:last-child{text-align:right}
69
+ .environment-map{width:100%;height:248px;display:block;overflow:visible}
70
+ .map-edge{fill:none;stroke:#525252;stroke-width:1;opacity:.55;transition:opacity 130ms ease,stroke 130ms ease}
71
+ .map-edge.local{stroke:#818181}
72
+ .map-edge.focused{stroke:var(--accent);stroke-width:1.5;opacity:1}
73
+ .map-edge.faded{opacity:.1}
74
+ .map-node{cursor:pointer;outline:none}
75
+ .map-node rect{fill:#1d1d1d;stroke:#383838;stroke-width:1;transition:fill 130ms ease,stroke 130ms ease}
76
+ .map-node:focus-visible rect,.map-node:hover rect{fill:#292929;stroke:#878787}
77
+ .map-node text{fill:#d4d4d4;font-family:var(--sans);font-size:10px}
78
+ .map-node .sub{fill:#949494;font-size:8px}
79
+ .map-node .node-dot{fill:var(--local)}
80
+ .map-node .cloud-dot{fill:var(--blue)}
81
+ .map-node .end-dot{fill:#909090;stroke:var(--surface);stroke-width:3}
82
+ .map-foot{border-top:1px solid var(--line-soft);padding:11px 21px;display:flex;justify-content:space-between;gap:10px;color:var(--quiet);font-size:9px}
83
+ .map-legend{display:flex;gap:15px}
84
+ .legend-item{display:inline-flex;align-items:center;gap:6px}
85
+ .legend-line{width:15px;height:1px;background:var(--local)}
86
+ .legend-line.cloud{background:var(--blue)}
87
+ .map-empty{padding:20px 24px 22px;min-height:248px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
88
+ .map-empty .empty-orbit{width:150px;height:72px;margin:3px 0 15px;color:#6e6e6e}
89
+ .map-empty h3{font-weight:450;color:var(--muted);font-size:12px}
90
+ .map-empty p{max-width:330px;margin:7px 0 14px;font-size:11px;color:var(--quiet);line-height:1.7}
91
+ .compute{position:relative;background:var(--surface)}
92
+ .compute-machine{padding:22px 21px 18px;display:flex;align-items:center;gap:12px}
93
+ .chip{width:40px;height:40px;display:grid;place-items:center;border:1px solid #575757;border-radius:9px;position:relative;flex-shrink:0;box-shadow:inset 0 0 0 4px #1f1f1f,inset 0 0 0 5px #3a3a3a;color:var(--accent);font-family:var(--mono);font-size:10px}
94
+ .chip:after{content:"";position:absolute;inset:-4px;border:1px solid #353535;border-radius:11px}
95
+ .machine-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:168px}
96
+ .machine-sub{font-size:10px;color:var(--quiet);margin-top:4px}
97
+ .compute-readings{padding:0 21px}
98
+ .meter-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-bottom:9px}
99
+ .meter-label strong{color:var(--text);font-weight:400;font-family:var(--mono);font-size:11px}
100
+ .memory-meter{height:5px;background:#333333;border-radius:2px;overflow:hidden;display:flex}
101
+ .memory-meter span{background:var(--local);height:100%}
102
+ .memory-note{display:flex;justify-content:space-between;color:var(--quiet);font-size:9px;margin-top:7px}
103
+ .cpu-row{display:flex;align-items:center;justify-content:space-between;padding:19px 0 15px;border-bottom:1px solid var(--line-soft)}
104
+ .cpu-row svg{width:125px;height:30px}
105
+ .cpu-row span{display:block;font-size:10px;color:var(--muted)}
106
+ .cpu-row strong{display:block;font-family:var(--mono);font-size:17px;font-weight:400;margin-top:3px}
107
+ .compute-foot{padding:13px 21px;color:var(--quiet);font-size:9px;display:flex;justify-content:space-between;gap:7px}
108
+ .resident{padding:13px 0 0;font-size:10px;display:flex;gap:7px;align-items:center;color:var(--muted)}
109
+ .lower-grid{display:grid;grid-template-columns:minmax(0,1fr) 277px;gap:22px}
110
+ .section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:15px}
111
+ .section-title h2{display:flex;gap:9px;align-items:center}
112
+ .badge-count{font-size:10px;font-weight:400;font-family:var(--mono);color:var(--quiet);padding:1px 6px;border:1px solid var(--line);border-radius:4px}
113
+ .table-wrap{overflow-x:auto}
114
+ .data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}
115
+ .data-table th{font-weight:500;color:#a3a3a3;font-size:12px;letter-spacing:0;text-align:right;padding:0 12px 12px;border-bottom:1px solid var(--line)}
116
+ .data-table th:first-child{text-align:left;padding-left:0}
117
+ .data-table td{padding:15px 12px;border-bottom:1px solid var(--line-soft);text-align:right;font-family:var(--mono);font-size:10px;color:var(--muted)}
118
+ .data-table td:first-child{padding-left:0;text-align:left;font-family:var(--sans)}
119
+ .data-table td:last-child,.data-table th:last-child{padding-right:0}
120
+ .model-name{display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;text-align:left;min-height:29px}
121
+ .model-name strong{font-weight:450;font-size:11px;color:var(--text);display:block}
122
+ .model-name small{font-size:9px;color:var(--quiet);display:block;margin-top:2px}
123
+ .table-spark{width:57px;height:21px}
124
+ .state{font-family:var(--sans);font-size:9px;color:var(--muted);display:inline-flex;gap:5px;align-items:center}
125
+ .state.loaded{color:var(--local)}
126
+ .state.failed{color:var(--error)}
127
+ .table-foot{margin-top:12px;color:var(--quiet);font-size:9px}
128
+ .activity-list{list-style:none;margin:0;padding:0}
129
+ .activity-item{padding:12px 0;border-bottom:1px solid var(--line-soft);display:flex;gap:10px;align-items:flex-start}
130
+ .activity-item:first-child{padding-top:0}
131
+ .activity-mark{margin-top:5px;flex-shrink:0;height:5px;width:5px;border-radius:50%;background:#8a8a8a}
132
+ .activity-mark.failed{background:var(--error)}
133
+ .activity-item-content{flex:1;min-width:0}
134
+ .activity-item strong{font-size:11px;font-weight:450;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
135
+ .activity-item p{font-size:10px;color:var(--quiet);margin-top:4px}
136
+ .activity-item time{font-family:var(--mono);color:var(--quiet);font-size:9px;white-space:nowrap;margin-top:1px}
137
+ .activity-link{margin-top:16px}
138
+ .empty-small{font-size:11px;line-height:1.8;color:var(--quiet);padding:24px 0;max-width:380px}
139
+ .footer{display:flex;justify-content:space-between;gap:16px;margin-top:30px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:9px;color:var(--quiet)}
140
+ .footer .source-strip{display:flex;gap:16px;flex-wrap:wrap}
141
+ .footer button{font-size:9px}
142
+ .footer-end{font-family:var(--mono);white-space:nowrap}
143
+ .activity-chart{padding:10px 0 0;position:relative}
144
+ .activity-chart svg{width:100%;height:190px;display:block}
145
+ .chart-grid{stroke:#2d2d2d;stroke-width:1;stroke-dasharray:2 5}
146
+ .chart-label{fill:#929292;font-family:var(--mono);font-size:9px}
147
+ .chart-bar{fill:#b4b4b4;opacity:.7}
148
+ .chart-bar.cloud{fill:#91a5ad;opacity:.65}
149
+ .chart-hit{fill:transparent;cursor:crosshair}
150
+ .chart-hit:hover{fill:#ffffff08}
151
+ .chart-tooltip{position:absolute;pointer-events:none;background:#2c2c2c;border:1px solid #4b4b4b;border-radius:7px;padding:8px 11px;box-shadow:0 5px 20px #0004;font-family:var(--mono);font-size:10px;z-index:2;white-space:nowrap}
152
+ .chart-tooltip[hidden]{display:none}
153
+ .chart-legend{display:flex;gap:18px;font-size:10px;color:var(--muted);padding:6px 22px 16px}
154
+ .chart-legend i{height:5px;width:5px;display:inline-block;border-radius:1px;margin-right:6px;background:var(--local)}
155
+ .chart-legend i.cloud{background:var(--blue)}
156
+ .activity-panel{margin-bottom:27px}
157
+ .filter-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}
158
+ .filter-tabs{display:flex;gap:6px;flex-wrap:wrap}
159
+ .filter-tabs button{border:1px solid transparent;background:transparent;border-radius:6px;padding:6px 12px;color:var(--quiet);font-size:11px}
160
+ .filter-tabs button[aria-pressed=true]{border-color:var(--line);background:var(--raised);color:var(--text)}
161
+ .filter-input{padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--text);font-size:11px;width:210px}
162
+ .filter-input::placeholder{color:var(--quiet)}
163
+ .inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:25px 0}
164
+ .inventory-card{padding:19px 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
165
+ .inventory-card h3{font-size:15px;font-weight:450}
166
+ .inventory-card p{color:var(--quiet);font-size:11px;margin-top:7px}
167
+ .inventory-card .state{margin-top:18px}
168
+ .source-list{border-top:1px solid var(--line);margin-bottom:30px}
169
+ .source-row{display:grid;grid-template-columns:1fr 110px 130px 25px;gap:15px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0}
170
+ .source-row h3{font-size:13px;font-weight:450}
171
+ .source-row p{font-size:11px;color:var(--quiet);margin-top:5px}
172
+ .source-row .source-kind{font-size:11px;color:var(--muted)}
173
+ .instruction-panel{padding:24px;max-width:780px}
174
+ .instruction-panel p{color:var(--muted);font-size:12px;margin:10px 0 15px;line-height:1.8}
175
+ .instruction-panel code{font-size:11px}
176
+ .instruction-panel pre,.detail-code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.8;background:#131313;border:1px solid var(--line);border-radius:7px;padding:17px;color:#c2c2c2}
177
+ .compute-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;margin-bottom:32px}
178
+ .hardware-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:25px 22px}
179
+ .hardware-facts dt{font-size:10px;color:var(--quiet);margin-bottom:7px}
180
+ .hardware-facts dd{margin:0;font-size:13px}
181
+ .history-chart{padding:0 22px 20px}
182
+ .history-chart svg{width:100%;height:135px}
183
+ .history-chart p{color:var(--quiet);font-size:10px;margin-top:8px}
184
+ dialog{color:var(--text);background:var(--surface);border:1px solid #3c3c3c;padding:0;box-shadow:0 24px 100px #0009;max-height:90svh;max-width:calc(100vw - 32px);outline:none}
185
+ dialog::backdrop{background:#090909a6;backdrop-filter:blur(4px)}
186
+ #inspector{width:450px;border-radius:14px;margin:auto;margin-right:24px;max-height:calc(100svh - 48px)}
187
+ .inspector-head{padding:26px 27px 22px;border-bottom:1px solid var(--line);position:relative}
188
+ .inspector-head h2{font-size:23px;letter-spacing:-.6px;font-weight:450;overflow-wrap:anywhere;padding-right:20px}
189
+ .inspector-head p{font-size:12px;color:var(--muted);margin-top:8px}
190
+ .close-button{position:absolute;right:16px;top:16px;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--quiet);font-size:20px;line-height:1}
191
+ .inspector-body{padding:23px 27px}
192
+ .detail-list{margin:0}
193
+ .detail-list div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--line-soft)}
194
+ .detail-list dt{color:var(--muted);font-size:11px}
195
+ .detail-list dd{margin:0;font-size:11px;text-align:right;overflow-wrap:anywhere;max-width:65%}
196
+ .detail-note{font-size:11px;line-height:1.8;color:var(--quiet);margin-top:22px}
197
+ .detail-caption{font-size:10px;color:var(--quiet);letter-spacing:.08em;text-transform:uppercase;margin:22px 0 10px}
198
+ .workspace-options{display:flex;flex-direction:column;gap:10px}
199
+ .workspace-option{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--raised);text-align:left}
200
+ .workspace-option strong{font-size:13px;font-weight:450;display:block}
201
+ .workspace-option span{color:var(--muted);font-size:11px;display:block;margin-top:5px}
202
+ .workspace-option.selected{border-color:#727272}
203
+ .modal-actions{display:flex;gap:10px;margin-top:22px}
204
+ #command{width:530px;border-radius:12px;margin:16svh auto auto}
205
+ .command-input-row{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
206
+ .command-input-row svg{width:18px;height:18px;color:var(--quiet)}
207
+ #command-input{background:none;border:0;outline:none;flex:1;width:100%;font-size:14px;color:var(--text)}
208
+ #command-results{padding:8px;max-height:360px;overflow-y:auto}
209
+ .command-result{width:100%;padding:12px;border:0;border-radius:6px;background:transparent;display:flex;justify-content:space-between;align-items:center;font-size:12px;text-align:left}
210
+ .command-result small{font-size:10px;color:var(--quiet)}
211
+ .command-result:focus,.command-result.selected{background:#2e2e2e;outline:none}
212
+ .command-footer{border-top:1px solid var(--line);padding:10px 20px;font-size:10px;color:var(--quiet)}
213
+ body:not(.keyboard) #inspector[open]{opacity:1;transform:translateX(0);transition:opacity var(--reveal) var(--ease),transform var(--reveal) var(--ease);@starting-style{opacity:0;transform:translateX(6px)}}
214
+ @media(hover:hover) and (pointer:fine){.button:hover,.workspace-option:hover{background:#2a2a2a}
215
+ .button.primary:hover{background:#dedede}
216
+ .text-button:hover,.panel-action:hover{color:var(--text)}
217
+ .model-name:hover strong{color:var(--accent)}
218
+ .source-row:hover{background:#1b1b1b}
219
+ .close-button:hover{background:var(--hover);color:var(--text)}
220
+ .command-result:hover{background:#292929}
221
+ .filter-tabs button:hover{color:var(--text)}}
222
+ @media(min-width:1650px){.environment-map{height:280px}
223
+ .compute-machine{padding-top:32px;padding-bottom:25px}
224
+ .cpu-row{padding-top:25px;padding-bottom:20px}
225
+ .overview-top{grid-template-columns:minmax(0,1fr) 310px}
226
+ .lower-grid{grid-template-columns:minmax(0,1fr) 310px}
227
+ .summary{padding-top:24px;padding-bottom:24px}}
228
+ @media(max-width:1190px){.overview-top,.lower-grid{grid-template-columns:minmax(0,1fr) 240px;gap:18px}
229
+ .summary-spark{display:none}
230
+ .summary{padding-left:18px;padding-right:15px}
231
+ .summary-value{font-size:27px}
232
+ .page-heading h1{font-size:27px}
233
+ .environment-map{height:240px}
234
+ .model-table .trend-column{display:none}
235
+ .compute-machine{gap:9px}
236
+ .machine-name{max-width:135px}
237
+ .collection-time{display:none}}
238
+ @media(max-width:980px){.overview-top,.lower-grid{grid-template-columns:1fr}
239
+ .compute{display:none}
240
+ .compute-grid .compute{display:block}
241
+ .summary-value{font-size:25px}
242
+ .environment-map{height:280px}
243
+ .lower-grid>section:last-child{margin-top:12px}
244
+ .activity-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
245
+ .activity-item:first-child{padding-top:12px}
246
+ .summary{padding-left:15px}
247
+ .summary-bottom{font-size:9px}
248
+ .inventory-grid{grid-template-columns:repeat(2,1fr)}
249
+ .compute-grid{grid-template-columns:1fr}
250
+ .compute-grid .compute{max-width:420px}
251
+ .source-row{grid-template-columns:1fr 100px 20px}
252
+ .source-kind{display:none}}
253
+ @media(max-width:700px){.page-heading{align-items:flex-start;margin-bottom:24px;gap:10px}
254
+ .page-heading h1{font-size:26px}
255
+ .page-heading p{font-size:11px;max-width:210px}
256
+ .heading-controls{margin-top:5px}
257
+ .segmented button{padding:4px 8px;min-width:28px;font-size:9px}
258
+ .summary-grid{grid-template-columns:1fr 1fr;margin-bottom:23px}
259
+ .summary{padding:18px 0}
260
+ .summary:nth-child(even){padding-left:20px}
261
+ .summary:nth-child(3):before{display:none}
262
+ .summary:nth-child(n+3){border-top:1px solid var(--line-soft)}
263
+ .summary-value{font-size:28px}
264
+ .summary-bottom{font-size:10px}
265
+ .overview-top{margin-bottom:23px}
266
+ .environment-map{height:220px}
267
+ .map-labels{font-size:7px;padding-left:15px;padding-right:15px}
268
+ .panel-head{padding:17px 16px 0}
269
+ .panel-head h2{font-size:13px}
270
+ .panel-head p{font-size:9px}
271
+ .map-foot{padding:10px 15px;font-size:8px}
272
+ .map-foot>span:last-child{display:none}
273
+ .data-table td{padding:13px 9px}
274
+ .data-table th{padding-right:9px;padding-left:9px}
275
+ .model-table .latency-column,.model-table .state-column{display:none}
276
+ .model-name strong{font-size:10px}
277
+ .model-name small{font-size:8px}
278
+ .activity-list{grid-template-columns:1fr}
279
+ .activity-item:first-child{padding-top:0}
280
+ .footer{font-size:8px;flex-direction:column}
281
+ .sample-disclosure{font-size:10px;align-items:flex-start}
282
+ .sample-disclosure button{white-space:nowrap}
283
+ .filter-bar{align-items:stretch;flex-direction:column}
284
+ .filter-input{width:100%;font-size:16px}
285
+ .inventory-grid{grid-template-columns:1fr}
286
+ .source-row{grid-template-columns:1fr 85px 12px;gap:8px}
287
+ .source-row h3{font-size:12px}
288
+ .source-row p{font-size:10px}
289
+ .source-row .state{font-size:8px}
290
+ #inspector{margin:auto;width:calc(100vw - 28px);max-height:90svh}
291
+ .inspector-head{padding:23px}
292
+ .inspector-body{padding:20px 23px}
293
+ #command{margin-top:10svh}
294
+ #command-input{font-size:16px}
295
+ .hardware-facts{grid-template-columns:1fr 1fr}
296
+ .instruction-panel{padding:20px}
297
+ .activity-chart svg{height:165px}}
298
+ .environment-map{height:278px;margin-top:19px}
299
+ .map-column-labels text{font-family:var(--mono);font-size:8px;letter-spacing:1px;fill:var(--quiet)}
300
+ .map-scroll{overflow-x:auto;overscroll-behavior-x:contain}
301
+ #main:focus{outline:none}
302
+ .map-edge.cloud{stroke:#718795}
303
+ .map-edge.focused{stroke:var(--accent)}
304
+ .map-node .unknown-dot{fill:#999999}
305
+ .map-scroll-hint{display:none}
306
+ @media(max-width:700px){.environment-map{height:246px;min-width:650px;margin-top:17px}
307
+ .map-scroll{margin-top:4px}}
308
+ @media(max-width:700px){.map-scroll-hint{display:inline;color:var(--quiet);margin-left:16px}}
309
+ @media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
310
+ body:not(.keyboard) #inspector[open]{transform:none}}
311
+ .morph-text{display:inline-block;vertical-align:baseline;white-space:nowrap}
312
+ .summary-value .morph-text{line-height:1.25}
313
+ .cpu-chart-island{width:125px;height:38px;min-width:0;flex-shrink:1}
314
+ .sampled-chart{width:100%;min-width:0}
315
+ .liveline-canvas{height:185px;width:100%}
316
+ .liveline-canvas>div{height:100%}
317
+ .liveline-canvas svg{width:100%;height:100%}
318
+ .mini-chart,.mini-chart .liveline-canvas{height:38px}
319
+ .mini-chart .chart-empty{font-size:0}
320
+ .chart-empty{height:100%;display:grid;place-items:center;color:var(--quiet);font-size:11px}
321
+ .sample-chart-header{display:flex;justify-content:space-between;align-items:center;margin:0 0 5px}
322
+ .chart-metric-tabs{display:flex;gap:3px;border:1px solid var(--line);border-radius:6px;padding:3px;background:#11111166}
323
+ .chart-metric-tabs button{background:none;border:0;padding:4px 10px;border-radius:3px;font-size:10px;color:var(--quiet)}
324
+ .chart-metric-tabs button[aria-pressed=true]{background:#343434;color:var(--text);box-shadow:0 1px 2px #0002}
325
+ .sample-reading{font-size:19px;font-weight:450;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
326
+ .sample-readout{display:flex;align-items:center;gap:9px;padding:10px 0;border-top:1px solid var(--line-soft);font-size:10px;color:var(--quiet);border-radius:2px}
327
+ .sample-readout strong{font:10px var(--mono);font-weight:400;color:#bdbdbd}
328
+ .sample-crosshair{color:var(--accent);font:15px var(--mono)}
329
+ .sample-cadence{margin-left:auto;color:#989898;font:9px var(--mono)}
330
+ .history-chart p.chart-method{margin-top:0;font-size:9px;color:#989898}
331
+ .history-chart>p{font-size:9px}
332
+ .panel{box-shadow:0 1px 0 #ffffff03 inset}
333
+ @media(hover:hover) and (pointer:fine){.chart-metric-tabs button:hover{color:var(--text)}}
334
+ @media(max-width:700px){.sample-readout{flex-wrap:wrap;font-size:9px;gap:7px}
335
+ .sample-readout strong{font-size:9px}
336
+ .sample-cadence{font-size:8px}
337
+ .liveline-canvas{height:170px}}
338
+ .scope-summary{display:flex;align-items:baseline;gap:10px 18px;flex-wrap:wrap}
339
+ .scope-summary .scope-link{font:inherit;color:var(--text);text-decoration:underline;text-decoration-color:#505050;text-underline-offset:4px}
340
+ .entity-head,.entity-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 64px;gap:14px;align-items:center;text-align:right}
341
+ .entity-head{padding:0 0 11px;color:var(--quiet);font-size:10px;border-bottom:1px solid var(--line)}
342
+ .entity-head>span:first-child,.entity-row>span:first-child{text-align:left}
343
+ .entity-row{width:100%;padding:14px 0;border:0;border-bottom:1px solid var(--line-soft);background:none;color:var(--muted);font:11px var(--mono)}
344
+ .entity-row strong{display:block;color:var(--text);font:450 12px/1.5 var(--sans);overflow-wrap:anywhere}
345
+ .entity-row small{display:block;margin-top:4px;color:var(--quiet);font:10px/1.5 var(--sans)}
346
+ .entity-row:focus-visible{outline-offset:2px}
347
+ @media(hover:hover) and (pointer:fine){.entity-row:hover{background:var(--hover)}
348
+ .scope-summary .scope-link:hover{text-decoration-color:var(--text)}}
349
+ .route-badge{display:inline-flex;align-items:center;gap:6px;color:var(--route-color);font-family:var(--sans);font-size:10px;font-weight:450;line-height:1.5;white-space:nowrap}
350
+ .route-icon{display:block;width:16px;height:16px;flex-shrink:0;pointer-events:none}
351
+ .path-summary .route-icon,.connection-kind .route-icon{width:18px;height:18px}
352
+ .route-node-icon{color:var(--route-color);pointer-events:none}
353
+ .route-node-icon .route-icon{width:20px;height:20px}
354
+ .route-unobserved{color:var(--quiet);font-size:9px;font-family:var(--sans)}
355
+ .route-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
356
+ .path-summary{display:flex;align-items:center;gap:30px;padding:0 0 26px;margin-top:-6px}
357
+ .path-summary-title{flex-shrink:0}
358
+ .path-summary-title h2{font-size:12px;font-weight:500}
359
+ .path-summary-title p{margin-top:5px;color:var(--quiet);font-size:10px}
360
+ .path-summary-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:24px;flex:1;min-width:0}
361
+ .path-summary-item{flex:1;min-width:0}
362
+ .path-summary-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
363
+ .path-summary-item .route-badge{font-size:11px}
364
+ .path-total{font:11px var(--mono);color:var(--text)}
365
+ .path-share-track{height:2px;display:block;background:#2c2c2c;margin-top:11px;overflow:hidden}
366
+ .path-share-track i{height:100%;display:block;background:var(--route-color)}
367
+ .map-edge.route-thread{stroke:var(--route-color);stroke-width:1.4;opacity:.7}
368
+ .map-edge.route-thread.focused{stroke:var(--route-color);stroke-width:2;opacity:1}
369
+ .map-edge.route-thread.faded{opacity:.12}
370
+ .route-node .end-dot{fill:var(--route-color)}
371
+ .map-node .route-caption{fill:var(--route-color);font-size:8.5px}
372
+ .route-node:focus-visible rect,.route-node:hover rect{stroke:var(--route-color)}
373
+ .map-foot{align-items:center;flex-wrap:wrap}
374
+ .map-foot .route-badge{font-size:9px}
375
+ .map-foot .route-legend{gap:14px}
376
+ .environment-panel>.map-scroll-hint{font-size:9px;margin-bottom:13px}
377
+ .model-routes{display:flex;gap:9px;margin:7px 0 0;flex-wrap:wrap}
378
+ .model-routes .route-badge{font-size:9px}
379
+ .model-routes .route-unobserved{font-size:8px}
380
+ .activity-mark.route-mark{width:2px;height:24px;border-radius:1px;background:var(--route-color);margin-top:3px}
381
+ .recent-route{display:flex;align-items:center;gap:7px;margin-top:7px}
382
+ .recent-route .route-badge{font-size:9px}
383
+ .recent-route>span:last-child:not(.route-badge){font-size:9px;color:var(--quiet);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
384
+ .recent-route>span:last-child:not(.route-badge):before{content:'·';margin-right:7px}
385
+ .activity-route small{display:block;font-size:9px;color:var(--quiet);margin-top:3px;font-family:var(--sans)}
386
+ .route-bar{opacity:.85}
387
+ .chart-legend{align-items:center;justify-content:space-between;flex-wrap:wrap}
388
+ .chart-tooltip{max-width:calc(100% - 20px);white-space:normal;line-height:1.6}
389
+ .connection-kind{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:13px}
390
+ @media(max-width:1190px){.path-summary{gap:20px}
391
+ .path-summary-items{gap:16px}
392
+ .path-summary-item .route-badge{font-size:10px}
393
+ .path-summary-item>div{gap:6px}
394
+ .path-total{font-size:10px}}
395
+ @media(max-width:980px){.path-summary{align-items:flex-start;flex-direction:column;gap:16px}
396
+ .path-summary-title{display:flex;align-items:baseline;gap:12px}
397
+ .path-summary-title p{margin:0}
398
+ .path-summary-items{width:100%}}
399
+ @media(max-width:700px){.path-summary{margin-top:0;padding-bottom:23px}
400
+ .path-summary-items{display:grid;grid-template-columns:1fr 1fr;gap:17px 22px}
401
+ .path-summary-item .route-badge{font-size:11px}
402
+ .path-share-track{margin-top:8px}
403
+ .map-foot .route-legend{gap:8px 15px}
404
+ .map-foot .route-badge{font-size:9px}
405
+ .model-routes{gap:7px}
406
+ .model-routes .route-badge{font-size:8px}
407
+ .route-legend{gap:10px 16px}
408
+ .chart-legend{padding-left:16px;padding-right:16px}
409
+ .chart-legend .route-badge{font-size:9px}}
410
+ .environment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 21px 14px}
411
+ .environment-toolbar label{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--quiet);min-width:0}
412
+ .environment-toolbar .text-button{font-size:10px;white-space:nowrap}
413
+ .deployment-map{height:var(--map-height);max-height:none;min-width:720px}
414
+ .deployment-map .map-column-labels text{font-size:9px;letter-spacing:1.1px}
415
+ .deployment-map .map-node text{font-size:11px}
416
+ .deployment-map .map-node .sub{font-size:9px}
417
+ .map-coverage{padding:0 21px 13px;font-size:10px;color:var(--quiet);line-height:1.7}
418
+ .environment-panel .map-foot{border:0;align-items:center;padding-top:13px;padding-bottom:9px}
419
+ .environment-panel .map-scroll{overflow:auto;max-height:560px;overscroll-behavior:contain;padding:0 16px}
420
+ .capacity-panel{align-self:start}
421
+ .capacity-rows{padding:6px 20px 0}
422
+ .capacity-row{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:20px 0;color:var(--text)}
423
+ .capacity-row:last-child{border-bottom:0}
424
+ .capacity-row-title,.capacity-row-reading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
425
+ .capacity-row-title strong{font-weight:450;font-size:12px;line-height:1.5}
426
+ .capacity-status{font-size:9px;white-space:nowrap;color:var(--quiet)}
427
+ .capacity-status.stale,.pool-sample-note.stale{color:#c5aa84}
428
+ .capacity-row-reading{margin-top:13px;font-size:10px;color:var(--quiet)}
429
+ .capacity-row-reading strong{font:11px var(--mono);color:#c6c6c6;white-space:nowrap}
430
+ .capacity-track{display:block;width:100%;height:3px;background:#303030;margin-top:9px;overflow:hidden;border-radius:1px}
431
+ .capacity-track i{display:block;width:100%;height:100%;background:#aaa;transform-origin:left}
432
+ .capacity-track.stale i{background:#776d61}
433
+ .capacity-track.unknown{background:transparent;border-top:1px dashed #393939}
434
+ .capacity-row-foot{display:block;font-size:9px;color:var(--quiet);margin-top:9px;line-height:1.6}
435
+ .capacity-foot{padding:14px 20px 18px;border-top:1px solid var(--line-soft);font-size:10px;line-height:1.7;color:var(--quiet)}
436
+ .environment-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:38px;margin:34px 0 40px}
437
+ .environment-detail-grid .section-title{margin-bottom:12px}
438
+ .environment-detail-grid .section-title .quiet{font-size:10px}
439
+ .deployment-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:15px 0;text-align:left;min-width:0}
440
+ .deployment-row>span{min-width:0}
441
+ .deployment-row strong{display:block;font-size:12px;font-weight:450;color:var(--text);overflow-wrap:anywhere}
442
+ .deployment-row small{display:block;font-size:10px;color:var(--quiet);margin-top:6px;line-height:1.5}
443
+ .deployment-row>span:last-child{text-align:right;font:11px var(--mono);color:var(--muted);flex-shrink:0}
444
+ .deployment-row>span:last-child small{font:9px var(--sans)}
445
+ #inspector.environment-inspector{width:580px}
446
+ .detail-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:29px 0 12px}
447
+ .detail-section-title h3{font-size:13px;font-weight:500}
448
+ .detail-section-title>span{font-size:10px;color:var(--quiet);text-align:right}
449
+ .agent-map-link{float:right}
450
+ .path-list{display:flex;flex-direction:column;gap:8px}
451
+ .path-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;border:1px solid var(--line);border-radius:7px;padding:12px;background:#1b1b1b;text-align:left}
452
+ .path-hop{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#bababa}
453
+ .path-hop svg{width:16px;height:16px;color:var(--route-color);flex-shrink:0}
454
+ .path-arrow{color:#777;font-size:11px}
455
+ .pool-sample-note{margin:20px 0 6px;font-size:11px;line-height:1.8;color:var(--quiet)}
456
+ .pool-reading{padding:15px 0}
457
+ .pool-reading>div:first-child{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:var(--muted)}
458
+ .pool-reading strong{font:13px var(--mono);color:var(--text)}
459
+ .pool-reading .capacity-track{margin-top:12px;height:4px}
460
+ .agent-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
461
+ .agent-links button{display:flex;justify-content:space-between;gap:10px;background:#202020;border:1px solid #303030;border-radius:6px;padding:10px;text-align:left;font-size:10px;line-height:1.5;color:#c0c0c0}
462
+ .agent-links button span{color:var(--quiet)}
463
+ .path-steps{list-style:none;margin:0;padding:0}
464
+ .path-steps li{display:flex;align-items:center;gap:13px;padding:17px 0;position:relative}
465
+ .path-steps li+li:before{content:'';position:absolute;left:10px;top:-8px;height:16px;border-left:1px solid #474747}
466
+ .path-steps svg{width:22px;height:22px;color:var(--route-color)}
467
+ .path-steps strong{font-size:13px;font-weight:450}
468
+ .path-steps small{display:block;margin-top:5px;font-size:10px;color:var(--quiet)}
469
+ @media(hover:hover) and (pointer:fine){.capacity-row:hover .capacity-row-title strong,.deployment-row:hover strong{color:#fff}
470
+ .path-row:hover,.agent-links button:hover{background:#272727;border-color:#494949}
471
+ .capacity-row:hover .capacity-track i{background:#c9c9c9}}
472
+ @media(max-width:1190px){.overview-top{grid-template-columns:minmax(0,1fr) 270px}
473
+ .capacity-row-title{flex-wrap:wrap;gap:3px}
474
+ .capacity-rows{padding-left:16px;padding-right:16px}}
475
+ @media(max-width:980px){.overview-top{grid-template-columns:1fr}
476
+ .overview-top .capacity-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
477
+ .overview-top .capacity-row{border:0}
478
+ .environment-detail-grid{gap:24px;grid-template-columns:1fr}}
479
+ @media(max-width:700px){.environment-toolbar{padding:15px 16px;align-items:flex-start;gap:8px}
480
+ .environment-toolbar label{flex-direction:column;align-items:flex-start;gap:6px}
481
+ .environment-toolbar .select-trigger{width:190px;font-size:12px}
482
+ .environment-toolbar .text-button{padding-top:4px}
483
+ .environment-panel .map-scroll{padding:0 12px}
484
+ .deployment-map{min-width:800px;height:var(--map-height)}
485
+ .environment-panel .map-foot{flex-wrap:wrap}
486
+ .environment-panel .map-foot>span:last-child{display:block}
487
+ .map-coverage{padding-left:16px;padding-right:16px}
488
+ .overview-top .capacity-rows{display:block}
489
+ .capacity-row-title{flex-wrap:nowrap}
490
+ .capacity-row-title strong{font-size:13px}
491
+ .capacity-row-reading,.capacity-row-foot{font-size:11px}
492
+ .environment-detail-grid{margin-top:27px}
493
+ .agent-links{grid-template-columns:1fr}
494
+ .detail-section-title{gap:10px}
495
+ .path-hop{font-size:11px}
496
+ .deployment-row strong{font-size:13px}
497
+ .deployment-row small{font-size:11px}
498
+ #inspector.environment-inspector{width:calc(100vw - 28px)}
499
+ .environment-detail-grid .section-title{align-items:flex-start;gap:8px;flex-direction:column}}
500
+ .agent-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:24px 0}
501
+ .agent-metrics span{display:block;font-size:10px;color:var(--quiet)}
502
+ .agent-metrics strong{display:block;font-size:19px;font-weight:450;font-variant-numeric:tabular-nums;margin-top:9px}
503
+ .inspector-tabs{display:flex;border-bottom:1px solid var(--line);gap:23px}
504
+ .inspector-tabs button{position:relative;background:none;border:0;color:var(--quiet);font-size:12px;padding:12px 0}
505
+ .inspector-tabs button[aria-pressed=true]{color:var(--text)}
506
+ .inspector-tabs button[aria-pressed=true]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#b9b9b9;border-radius:2px}
507
+ .inspector-tabs+.detail-section-title{margin-top:22px}
508
+ @media(max-width:700px){.agent-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
509
+ .agent-metrics strong{font-size:22px}}
510
+ .path-count{font-size:9px;color:var(--quiet);margin-left:auto;white-space:nowrap}
511
+ .select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;width:224px;max-width:100%;min-width:0;min-height:34px;padding:7px 11px;border:1px solid #3b3b3b;border-radius:7px;background:#202020;color:#d2d2d2;text-align:left;font-size:11px;line-height:18px;box-shadow:0 1px 2px #0002;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color 120ms ease,border-color 120ms ease}
512
+ .select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
513
+ .select-chevron{width:14px;height:14px;flex-shrink:0;color:#969696}
514
+ .select-trigger:active,.select-trigger[aria-expanded=true]{transform:none;background:#292929;border-color:#686868;color:#e7e7e7}
515
+ .select-trigger[aria-expanded=true] .select-chevron{color:#d4d4d4}
516
+ .select-trigger:focus-visible{outline:2px solid #bcbcbc;outline-offset:3px}
517
+ .select-trigger:disabled{opacity:.45;cursor:not-allowed}
518
+ .select-menu{position:fixed;z-index:40;padding:5px;max-height:340px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#505050 transparent;background:#222;border:1px solid #424242;border-radius:10px;box-shadow:0 10px 30px #0006,0 2px 6px #0003;color:var(--text);font-family:var(--sans);outline:none}
519
+ .select-option{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:34px;padding:8px 10px;border-radius:5px;font-size:12px;line-height:18px;color:#b9b9b9;cursor:pointer;user-select:none}
520
+ .select-option>span:first-child{min-width:0;overflow-wrap:anywhere}
521
+ .select-option svg,.select-check-space{width:14px;height:14px;flex-shrink:0}
522
+ .select-option[aria-selected=true]{color:#ededed}
523
+ .select-option.is-active{background:#353535;color:#f0f0f0}
524
+ .select-option[aria-disabled=true]{opacity:.4;cursor:not-allowed}
525
+ @media(hover:hover) and (pointer:fine){.select-trigger:hover:not(:disabled){background:#272727;border-color:#555}
526
+ .select-trigger[aria-expanded=true]:hover{border-color:#777}}
527
+ body:not(.keyboard) .select-menu{transition:opacity 120ms var(--ease);@starting-style{opacity:0}}
528
+ body.keyboard .select-trigger,body.keyboard .select-menu{transition:none}
529
+ @media(max-width:700px){.select-trigger{min-height:38px}
530
+ .select-option{min-height:40px;font-size:13px}}
531
+ @media(prefers-reduced-motion:reduce){.select-menu,.select-trigger{transition:none!important}}
532
+ .connection-name{display:flex;align-items:center;gap:10px;min-height:24px}
533
+ .brand-icon{width:var(--brand-size,20px);height:var(--brand-size,20px);object-fit:contain;flex:none}
534
+ .activity-panel .panel-head{margin-bottom:26px}
535
+ .volume-chart{margin:0 22px;display:flex;gap:16px;position:relative}
536
+ .volume-scale{width:30px;flex:none;display:flex;flex-direction:column;justify-content:space-between;padding:5px 0 30px;text-align:right;font:10px var(--mono);color:var(--quiet)}
537
+ .volume-plot{min-width:0;flex:1}
538
+ .volume-chart svg{display:block;width:100%;height:144px;overflow:visible}
539
+ .volume-times{display:flex;justify-content:space-between;margin-top:11px;font:10px var(--mono);color:var(--quiet)}
540
+ .volume-chart .chart-grid{stroke:var(--line);stroke-dasharray:none}
541
+ .volume-bar{opacity:.85}
542
+ .volume-chart g:has(.chart-hit:hover) .volume-bar,.volume-chart g:has(.chart-hit:focus) .volume-bar{opacity:1}
543
+ .volume-chart .chart-hit:hover,.volume-chart .chart-hit:focus{fill:var(--chart-color);fill-opacity:.1;outline:none}
544
+ .volume-paths{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:26px 22px 0;border-top:1px solid var(--line)}
545
+ .volume-paths button{background:transparent;border:0;position:relative;text-align:left;padding:15px 12px 9px;border-radius:0;min-width:0;color:var(--muted);transition:background 120ms ease-out}
546
+ .volume-paths button:first-child{padding-left:0}
547
+ .volume-paths button>span{display:flex;align-items:center;gap:7px;font-size:11px;white-space:nowrap}
548
+ .volume-paths svg{width:16px;height:16px;color:var(--route-color);flex:none}
549
+ .volume-paths strong{display:block;margin-top:9px;font:17px var(--mono);font-weight:400;color:var(--text);font-variant-numeric:tabular-nums}
550
+ .volume-paths button:before{content:'';position:absolute;top:-1px;left:12px;right:12px;height:2px;background:var(--route-color);opacity:0}
551
+ .volume-paths button:first-child:before{left:0}
552
+ .volume-paths button[aria-pressed=true]:before{opacity:1}
553
+ .volume-paths button[aria-pressed=true]>span{color:var(--text)}
554
+ .all-paths-mark{width:16px;text-align:center;font-size:19px;line-height:16px;color:var(--route-color)}
555
+ .chart-caption{font-size:10px;color:var(--quiet);margin:15px 22px 18px}
556
+ .volume-chart .chart-tooltip{font-size:11px;max-width:calc(100% - 20px);white-space:normal}
557
+ .fleet-summary{display:grid;grid-template-columns:1fr 1fr 1.3fr 1.7fr;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-bottom:30px}
558
+ .fleet-summary>div{display:flex;flex-direction:column;gap:8px}
559
+ .fleet-summary strong{font-size:28px;line-height:1.1;font-weight:450;letter-spacing:-.7px;font-variant-numeric:tabular-nums}
560
+ .fleet-summary strong span{color:var(--quiet);font-size:20px}
561
+ .fleet-summary>div>span{font-size:12px;color:var(--muted)}
562
+ .fleet-summary p{font-size:11px;color:var(--quiet);line-height:1.7;margin:0;align-self:center}
563
+ .host-inventory-heading{margin-bottom:12px}
564
+ .host-inventory-heading p,.host-detail>.section-title p{font-size:11px;color:var(--quiet);margin:7px 0 0}
565
+ .host-inventory-heading .select-control{width:180px}
566
+ .host-table{min-width:880px}
567
+ .host-table th{padding-bottom:14px}
568
+ .host-table th:nth-child(2),.host-table td:nth-child(2),.host-table th:nth-child(5),.host-table td:nth-child(5){text-align:left}
569
+ .host-table td{font-size:11px;padding-top:14px;padding-bottom:14px}
570
+ .host-table td:nth-child(2),.host-table td:nth-child(5){font-family:var(--sans);color:var(--muted)}
571
+ .host-table .host-group th{text-align:left;font-family:var(--sans);font-weight:450;font-size:12px;color:var(--text);padding:19px 0 10px;border:0}
572
+ .host-group th span{margin-left:10px;color:var(--quiet);font-size:11px}
573
+ .host-row.selected{background:#1b1b1b}
574
+ .host-table .host-row td:first-child{padding-left:12px;border-left:2px solid transparent}
575
+ .host-table .host-row.selected td:first-child{border-left-color:#b4b4b4}
576
+ .host-table .host-row td:last-child{padding-right:12px}
577
+ .host-name{background:transparent;border:0;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text);font-size:12px;padding:6px 0;min-height:30px}
578
+ .host-name small{font-size:10px;color:var(--quiet);font-weight:400}
579
+ .hardware-status{display:inline-flex;align-items:center;gap:6px;font:11px var(--sans);color:var(--muted);white-space:nowrap}
580
+ .hardware-status.stale{color:var(--amber)}
581
+ .hardware-status.unknown{color:var(--quiet)}
582
+ .host-detail{margin-top:30px}
583
+ .host-detail>.section-title{align-items:center}
584
+ .host-detail-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:20px;align-items:start}
585
+ .host-history .history-chart{margin-top:8px}
586
+ .host-history .liveline-canvas{height:215px}
587
+ .host-hardware{padding:0 22px 14px}
588
+ .host-hardware .panel-head{margin-bottom:12px;padding-left:0;padding-right:0}
589
+ .host-detail-grid+.section-title{margin-top:28px}
590
+ .host-facts{margin:0}
591
+ .host-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:10px 0;font-size:11px}
592
+ .host-facts dt{color:var(--muted);flex:none}
593
+ .host-facts dd{margin:0;text-align:right;color:var(--text)}
594
+ .accelerator-list{margin-top:12px}
595
+ .accelerator{border-top:1px solid var(--line);padding:16px 0 2px}
596
+ .accelerator>div,.accelerator p{display:flex;align-items:center;justify-content:space-between;gap:16px}
597
+ .accelerator>div>strong{font-size:12px;font-weight:450}
598
+ .accelerator>div>span{font:10px var(--mono);color:var(--quiet)}
599
+ .accelerator p{font-size:11px;color:var(--muted);margin:10px 0}
600
+ .accelerator p strong{font:11px var(--mono);color:var(--text)}
601
+ .loaded-models{border-top:1px solid var(--line)}
602
+ .loaded-model{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid var(--line-soft)}
603
+ .loaded-model>div:last-child{text-align:right}
604
+ .loaded-model strong{font-size:12px;font-weight:450}
605
+ .loaded-model>div:last-child>strong{font-family:var(--mono)}
606
+ .loaded-model p{font-size:11px;color:var(--quiet);margin:6px 0 0}
607
+ @media(hover:hover){.volume-paths button:hover{background:#ffffff04}
608
+ .host-name:hover{color:#fff}
609
+ .host-row:not(.selected):hover{background:#ffffff03}}
610
+ @media(max-width:1100px){.volume-paths{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px}
611
+ .volume-paths button:first-child{padding-left:12px}
612
+ .volume-paths button:first-child:before{left:12px}
613
+ .host-detail-grid{grid-template-columns:minmax(0,1fr)}
614
+ .host-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
615
+ .accelerator-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}
616
+ .fleet-summary{grid-template-columns:1fr 1fr 1.4fr}
617
+ .fleet-summary p{grid-column:1/-1}}
618
+ @media(max-width:640px){.data-table th{font-size:12px}
619
+ .volume-chart svg{height:140px}
620
+ .volume-scale{font-size:9px;width:22px}
621
+ .volume-chart{gap:10px}
622
+ .volume-times{font-size:9px}
623
+ .volume-times span:nth-child(2),.volume-times span:nth-child(4){display:none}
624
+ .volume-paths{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}
625
+ .fleet-summary{gap:20px 14px}
626
+ .fleet-summary strong{font-size:24px}
627
+ .fleet-summary>div>span{font-size:10px}
628
+ .fleet-summary p{display:none}
629
+ .host-inventory-heading{gap:15px;align-items:flex-start}
630
+ .host-inventory-heading .select-trigger{width:150px}
631
+ .host-facts,.accelerator-list{display:block}
632
+ .host-detail-grid{gap:16px}
633
+ .host-detail>.section-title{gap:15px}
634
+ .host-detail>.section-title h2{font-size:16px}
635
+ .host-history .liveline-canvas{height:185px}
636
+ .loaded-model{align-items:flex-start;gap:16px}
637
+ .loaded-model p{max-width:145px;line-height:1.6}
638
+ .chart-caption{line-height:1.7}}
639
+ @media(prefers-reduced-motion:reduce){.volume-paths button{transition:none}}
640
+ .host-detail>.table-foot+.section-title{margin-top:28px}
641
+ .identity-label{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;vertical-align:middle}
642
+ .identity-label>.brand-icon{flex:none;align-self:center}
643
+ .identity-label>span{min-width:0;overflow-wrap:anywhere}
644
+ .identity-list{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
645
+ .brand-icon{border:0;background:none;border-radius:0;box-shadow:none}
646
+ .map-brand-icon{pointer-events:none}
647
+ .model-table .model-name:has(>.brand-icon)+.model-routes{margin-left:28px}
648
+ .model-table .model-name{gap:10px}
649
+ .model-name small>.identity-label{font-size:inherit;line-height:inherit}
650
+ .model-name small .identity-label{gap:5px}
651
+ .model-table .model-name small .brand-icon{opacity:.85}
652
+ .activity-item-content>p>.identity-label{gap:5px}
653
+ .activity-route small>.identity-label{justify-content:flex-end;gap:5px}
654
+ .recent-route .identity-label{gap:4px}
655
+ .loaded-model .model-name{gap:9px}
656
+ .loaded-model .model-name:has(>.brand-icon)+p{margin-left:27px}
657
+ .inspector-head h2>.identity-label{gap:10px;align-items:center}
658
+ .inspector-head h2 .brand-icon{align-self:flex-start;margin-top:4px}
659
+ .inspector-head p>.identity-label{gap:6px}
660
+ .detail-list dd>.identity-label{justify-content:flex-end}
661
+ .command-result>.identity-label{gap:10px}
662
+ .command-result>small{flex:none;margin-left:14px}
663
+ .capacity-row-title>strong>.identity-label{gap:7px}
664
+ .deployment-row strong>.identity-label{gap:8px}
665
+ .deployment-row>span:first-child:has(.brand-icon)>small{margin-left:24px}
666
+ .path-hop>.identity-label{gap:5px}
667
+ .source-row h3>.identity-label{gap:9px}
668
+ .source-row>span:first-child:has(.brand-icon)>p{margin-left:27px}
669
+ @media(max-width:640px){.command-result>.identity-label{max-width:75%}
670
+ .model-table .model-name:has(>.brand-icon)+.model-routes{margin-left:28px}
671
+ .recent-route{flex-wrap:wrap;row-gap:5px}
672
+ .path-hop>.identity-label{gap:5px}}
673
+ .activity-table .model-name strong{font-size:12px}
674
+ .activity-table .model-name small{font-size:12px;line-height:1.6;color:var(--muted);margin-top:4px}
675
+ .activity-table .activity-route small{font-size:11px;line-height:1.6;color:var(--muted)}
676
+ .source-row{padding:13px 0;gap:12px;min-height:64px}
677
+ .source-row h3{line-height:1.35}
678
+ .source-row p{margin-top:4px;line-height:1.45;overflow-wrap:anywhere}
679
+ .source-list{margin-bottom:22px}
680
+ .source-row>span:first-child{min-width:0}
681
+ .identity-evidence{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0;padding:13px 0}
682
+ .identity-evidence summary{cursor:pointer;color:var(--muted);font-size:12px}
683
+ .identity-evidence p{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0 0}
684
+ .host-facts dd{overflow-wrap:anywhere;min-width:0}
685
+ @media(max-width:640px){.activity-table .model-name strong{font-size:12px}
686
+ .activity-table .model-name small{font-size:12px}
687
+ .source-row{padding:12px 0}
688
+ .source-row p{font-size:11px}}
689
+
690
+ /* One workspace: a fixed-height masthead, text tabs, and a shared content grid. */
691
+ :root{--page-width:1520px;--page-gutter:40px;--header-height:110px}
692
+ html{scroll-padding-top:calc(var(--header-height) + 16px)}
693
+ .shell{min-height:100svh}
694
+ .main,.terminal-header-inner{width:100%;max-width:var(--page-width);margin-inline:auto;padding-inline:var(--page-gutter)}
695
+ .main{padding-top:28px;padding-bottom:25px;min-width:0}
696
+ .terminal-header{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}
697
+ .terminal-masthead{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
698
+ .terminal-identity{display:flex;align-items:center;gap:22px;min-width:0}
699
+ .brand{display:inline-flex;align-items:center;gap:9px;border:0;background:none;padding:0;color:var(--text);flex:none}
700
+ .brand svg{width:22px;height:25px;color:#d8d8d8}
701
+ .wordmark{font-size:20px;line-height:1.2;letter-spacing:-.7px;font-weight:550}
702
+ .terminal-product{border-left:1px solid var(--line);padding-left:22px;color:var(--muted);font-size:12px;white-space:nowrap}
703
+ .header-actions{display:flex;align-items:center;gap:22px;min-width:0}
704
+ .environment-switch{display:flex;align-items:center;gap:9px;min-width:0;max-width:360px;min-height:36px;border:0;border-radius:5px;padding:6px 7px;background:transparent;text-align:left;color:var(--text);font-size:12px}
705
+ .environment-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
706
+ .environment-mode{font-size:10px;color:var(--amber);flex:none}
707
+ .environment-switch>svg{width:16px;height:16px;flex:none;color:var(--quiet)}
708
+ .header-search{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:12px;flex:none}
709
+ .header-search svg{width:16px;height:16px}.header-search kbd{margin-left:7px;background:none;font-size:10px}
710
+ .terminal-navigation{display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0}
711
+ .terminal-tabs{position:relative;display:flex;align-items:stretch;gap:28px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
712
+ .terminal-tabs::-webkit-scrollbar{display:none}
713
+ .terminal-tabs [role=tab]{position:relative;flex:none;height:46px;padding:0 2px;background:none;border:0;border-radius:0;color:var(--muted);font-size:13px;font-weight:450;white-space:nowrap;transition:color 120ms ease}
714
+ .terminal-tabs [role=tab]:first-child{padding-left:0}
715
+ .terminal-tabs [role=tab]:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--text);opacity:0}
716
+ .terminal-tabs [aria-selected=true]{color:var(--text)}.terminal-tabs [aria-selected=true]:after{opacity:1}
717
+ .terminal-tabs [role=tab]:focus-visible{outline-offset:-5px;border-radius:3px}
718
+ .terminal-tabs [role=tab]:active{transform:none}
719
+ .source-status{display:flex;align-items:center;gap:8px;background:none;border:0;color:var(--quiet);font-size:11px;min-height:36px;padding:5px 0;flex:none;white-space:nowrap}
720
+ .source-interval{padding-left:11px;margin-left:3px;border-left:1px solid var(--line);font:10px var(--mono)}
721
+ .source-status.attention .morph-text{color:var(--muted)}
722
+ @media(hover:hover) and (pointer:fine){.terminal-tabs [role=tab]:hover,.header-search:hover,.source-status:hover{color:var(--text)}.environment-switch:hover{background:var(--raised)}.brand:hover{opacity:.85}}
723
+ body.keyboard .terminal-tabs [role=tab]{transition:none}
724
+ @media(max-width:1000px){:root{--page-gutter:28px}.terminal-product{display:none}.terminal-tabs{gap:24px}.header-actions{gap:16px}}
725
+ @media(max-width:700px){:root{--page-gutter:20px;--header-height:104px}.terminal-masthead{height:60px;gap:16px}.terminal-identity{gap:0}.brand .wordmark{font-size:18px}.brand svg{width:20px;height:23px}.header-actions{gap:10px;flex:1;justify-content:flex-end}.environment-switch{max-width:220px;gap:5px;font-size:11px;padding-inline:4px}.environment-mode{display:none}.header-search{width:32px;justify-content:center}.header-search span,.header-search kbd{display:none}.terminal-navigation{gap:0}.terminal-tabs{gap:24px;width:100%}.terminal-tabs [role=tab]{height:44px;font-size:12px}.source-status{display:none}.main{padding-top:22px}.sample-disclosure{font-size:10px}.terminal-header-inner{padding-right:0}.terminal-masthead{padding-right:var(--page-gutter)}.terminal-tabs{padding-right:var(--page-gutter)}}
726
+ @media(max-width:380px){.brand .wordmark{display:none}.environment-switch{max-width:230px}}
727
+ @media(prefers-reduced-motion:reduce){.terminal-tabs [role=tab]{transition:none}}
728
+
729
+ /* Services: quiet inventory first, with topology one step away. */
730
+ .service-view-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}
731
+ .service-view-bar .segmented button{padding:7px 12px;font-size:12px}
732
+ .service-filter-bar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:24px}
733
+ .service-filter-bar .filter-tabs{gap:3px;align-items:center}
734
+ .service-filter-bar .filter-tabs button{font-size:12px;padding:7px 9px;display:flex;gap:8px;align-items:center;white-space:nowrap}
735
+ .service-filter-bar .filter-tabs button span{font-family:var(--mono);font-size:10px;color:var(--quiet)}
736
+ .service-filter-bar .filter-input{min-width:190px;max-width:240px}
737
+ .service-table{min-width:970px}
738
+ .service-table td{padding-top:19px;padding-bottom:19px;font-size:12px}
739
+ .service-table td:nth-child(2),.service-table th:nth-child(2),.service-table td:last-child,.service-table th:last-child{text-align:left}
740
+ .service-table .model-name strong{font-size:13px}
741
+ .service-table .model-name small{font-size:11px;margin-top:6px;max-width:235px;overflow:hidden;text-overflow:ellipsis}
742
+ .service-types{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
743
+ .service-types .route-badge{font-size:11px}
744
+ .service-evidence span,.service-capacity span{font-family:var(--sans);font-size:12px}
745
+ .service-evidence small,.service-capacity small{display:block;margin-top:5px;font-family:var(--sans);font-size:11px;color:var(--quiet)}
746
+ .service-capacity small{max-width:170px;margin-inline-start:auto;white-space:normal;line-height:1.5}
747
+ .service-model-list{display:grid;gap:0}
748
+ .service-model-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border:0;border-bottom:1px solid var(--line-soft);background:none;text-align:left;color:var(--text)}
749
+ .service-model-row>span:last-child{color:var(--quiet)}
750
+ .service-model-row small{display:block;font-size:11px;color:var(--muted);margin:6px 0 0 24px}
751
+ .service-model-row:disabled{cursor:default;opacity:1}
752
+ .service-evidence-list>div{padding:13px 0;border-bottom:1px solid var(--line-soft);display:grid;gap:5px;overflow-wrap:anywhere}
753
+ .service-evidence-list strong{font-size:12px;font-weight:450}
754
+ .service-evidence-list span,.service-evidence-list small{font-size:11px;color:var(--muted)}
755
+ .service-evidence-list .text-button{justify-self:start;text-align:left;white-space:normal}
756
+ @media(hover:hover) and (pointer:fine){.service-model-row:not(:disabled):hover{color:white;background:var(--raised)}.service-table tbody tr:hover{background:rgba(255,255,255,.015)}}
757
+ @media(max-width:1100px){.service-filter-bar{flex-wrap:wrap}.service-filter-bar .filter-input{width:240px}.service-filter-bar .filter-tabs{flex:1 1 100%}}
758
+ @media(max-width:700px){.service-view-bar{align-items:flex-start;flex-wrap:wrap;gap:13px}.service-view-bar .quiet{font-size:11px}.service-filter-bar{gap:14px}.service-filter-bar .filter-tabs{gap:3px}.service-filter-bar .filter-tabs button{padding:7px 8px;font-size:11px}.service-filter-bar .filter-input{max-width:none;width:100%}.service-table td{padding-top:16px;padding-bottom:16px}}
759
+
760
+ /* Source discovery stays in the same quiet inventory. */
761
+ .discovery-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 0 20px;border-bottom:1px solid var(--line);margin-bottom:4px}
762
+ .discovery-summary>div{display:grid;gap:7px}.discovery-summary strong{font-size:13px;font-weight:450}.discovery-summary span{font-size:12px;color:var(--muted)}
763
+ .source-coverage{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.5}
764
+ .source-access-instructions{margin-top:22px}.source-access-instructions h3{font-size:13px;font-weight:450}.source-access-instructions p{font-size:12px;line-height:1.7;color:var(--muted);margin:9px 0}
765
+ @media(max-width:700px){.discovery-summary{flex-direction:column;align-items:flex-start;gap:12px}.discovery-summary span{line-height:1.6}}
766
+
767
+ .discovery-summary+.source-list{border-top:0}
768
+
769
+ /* Stacks retain the map's original scale; disclosure only adds detail. */
770
+ .environment-toolbar .map-controls{display:flex;align-items:center;gap:18px}
771
+ .environment-panel .complete-map-scroll{scrollbar-width:thin;scrollbar-color:#424242 transparent}
772
+ .environment-map.complete-map{height:var(--map-height);max-height:none;min-width:800px}
773
+ .complete-map .map-stack-back{fill:#191919;stroke:#303030}
774
+ .complete-map .map-stack-count{fill:#a0a0a0;font:10px var(--mono)}
775
+ .map-disclosure{fill:none;stroke:#aaa;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
776
+ .complete-map .map-node:focus-visible>rect:not(.map-stack-back){stroke:#d4d4d4;stroke-width:1.5}
777
+ @media(prefers-reduced-motion:reduce){.complete-map .map-node rect,.complete-map .map-edge{transition:none}}
778
+ body.keyboard .complete-map .map-node rect,body.keyboard .complete-map .map-edge{transition:none}
779
+ @media(max-width:700px){.environment-toolbar{flex-wrap:wrap}.environment-toolbar .map-controls{margin-left:auto}.environment-panel .complete-map-scroll{max-height:480px}}