openmerit 0.1.6 → 0.1.7-preview.2

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 (60) hide show
  1. package/CHANGELOG.md +10 -4
  2. package/README.md +61 -40
  3. package/dist/eval/src/adapters.mjs +112 -0
  4. package/dist/eval/src/cli.mjs +151 -0
  5. package/dist/eval/src/config.mjs +108 -0
  6. package/dist/eval/src/process.mjs +44 -0
  7. package/dist/eval/src/report.mjs +59 -0
  8. package/dist/eval/src/runner.mjs +123 -0
  9. package/dist/eval/src/scout.mjs +37 -0
  10. package/dist/terminal/public/app.js +36 -36
  11. package/dist/terminal/public/flow.css +1 -1
  12. package/dist/terminal/public/flow.js +26 -26
  13. package/dist/terminal/public/index.html +3 -2
  14. package/dist/terminal/public/styles.css +320 -91
  15. package/dist/terminal/src/cli.mjs +2 -0
  16. package/dist/terminal/src/demo-policy.mjs +205 -0
  17. package/dist/terminal/src/enterprise-sample.mjs +151 -0
  18. package/docs/adapter-guide.md +2 -2
  19. package/docs/agent-evaluations.md +145 -0
  20. package/docs/architecture.md +3 -3
  21. package/docs/automation.md +5 -5
  22. package/docs/budgets.md +2 -2
  23. package/docs/commands.md +9 -5
  24. package/docs/demo-backfill.md +3 -1
  25. package/docs/demo-fieldkit.md +3 -1
  26. package/docs/demo-placement.md +3 -1
  27. package/docs/demo-spam.md +3 -1
  28. package/docs/demo-support.md +3 -1
  29. package/docs/demo.md +22 -5
  30. package/docs/first-trial.md +2 -2
  31. package/docs/getting-started.md +23 -12
  32. package/docs/index.md +18 -29
  33. package/docs/inference-terminal.md +90 -54
  34. package/docs/interactive-demo.md +118 -0
  35. package/docs/lifecycle.md +4 -4
  36. package/docs/metrics-and-evidence.md +3 -3
  37. package/docs/operations.md +3 -5
  38. package/docs/pi-extension.md +6 -6
  39. package/docs/roadmap.md +17 -17
  40. package/docs/scout.md +206 -0
  41. package/docs/security.md +8 -4
  42. package/docs/site-demo.md +4 -0
  43. package/docs/site-design.md +7 -1
  44. package/docs/site-documentation.md +9 -3
  45. package/docs/site-domain-migration.md +57 -0
  46. package/docs/site-dynamic-og.md +2 -2
  47. package/docs/site-faq-maintenance.md +133 -6
  48. package/docs/site-hero-resolution.md +2 -0
  49. package/docs/site-illustration-sequences.md +3 -1
  50. package/docs/site-illustration-transparency.md +80 -0
  51. package/docs/site-memo.md +6 -0
  52. package/docs/site-og-image.md +1 -1
  53. package/docs/site-publication-2026-10-14.md +29 -0
  54. package/docs/site-scout-decisions-experiment.md +87 -0
  55. package/docs/site-scout.md +254 -0
  56. package/docs/site-terminal-preview.md +96 -3
  57. package/docs/site-themes.md +30 -0
  58. package/docs/testing.md +46 -68
  59. package/docs/troubleshooting.md +3 -3
  60. package/package.json +9 -3
@@ -1,7 +1,106 @@
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}
1
+ /* Device-driven themes. All UI colors are semantic; brand artwork stays original. */
2
+ :root{color-scheme:light dark;--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
+ :root {
4
+ --bg: #f7f7f5;
5
+ --surface: #ffffff;
6
+ --raised: #f0f0ed;
7
+ --hover: #e9e9e5;
8
+ --line: #d9dad4;
9
+ --line-soft: #e8e9e3;
10
+ --line-strong: #c6c8bf;
11
+ --line-active: #8b8f82;
12
+ --text: #292c26;
13
+ --muted: #60655b;
14
+ --quiet: #696f63;
15
+ --accent: #343a2e;
16
+ --on-accent: #ffffff;
17
+ --local: #58614e;
18
+ --amber: #865a24;
19
+ --blue: #3a6a89;
20
+ --error: #a44835;
21
+ --inset: #f4f4f0;
22
+ --control: #eeeeea;
23
+ --selected: #dddfd6;
24
+ --node: #fdfdfa;
25
+ --node-hover: #e9ebe3;
26
+ --stack: #eeefe8;
27
+ --secondary: #4e5547;
28
+ --strong: #20251c;
29
+ --track: #dfe2d8;
30
+ --chart: #626d55;
31
+ --scrollbar: #b0b5a6;
32
+ --overlay: #222b1808;
33
+ --panel-glint: #ffffff80;
34
+ --warning-bg: #f5ecda;
35
+ --warning-line: #ddc9a6;
36
+ --sample-bg: #f4f0e5;
37
+ --sample-line: #ddd3b9;
38
+ --sample-text: #756445;
39
+ --sample-action: #5f5033;
40
+ --tooltip: #ffffff;
41
+ --shadow: #29301d1c;
42
+ --shadow-heavy: #29301d33;
43
+ --backdrop: #29301d52;
44
+ --primary-hover: #4a5341;
45
+ --route-direct: #365dcc;
46
+ --route-local: #8b5e28;
47
+ --route-router: #7952ad;
48
+ --route-gateway: #087e8e;
49
+ --route-unknown: #6b7065;
50
+ }
51
+ @media (prefers-color-scheme: dark) {
52
+ :root {
53
+ --bg: #121212;
54
+ --surface: #181818;
55
+ --raised: #1e1e1e;
56
+ --hover: #242424;
57
+ --line: #2d2d2d;
58
+ --line-soft: #262626;
59
+ --line-strong: #383838;
60
+ --line-active: #686868;
61
+ --text: #e7e7e7;
62
+ --muted: #a2a2a2;
63
+ --quiet: #969696;
64
+ --accent: #e0e0e0;
65
+ --on-accent: #282828;
66
+ --local: #bcbcbc;
67
+ --amber: #d0b185;
68
+ --blue: #9bb8cb;
69
+ --error: #d39f92;
70
+ --inset: #131313;
71
+ --control: #1c1c1c;
72
+ --selected: #343434;
73
+ --node: #1d1d1d;
74
+ --node-hover: #292929;
75
+ --stack: #191919;
76
+ --secondary: #c2c2c2;
77
+ --strong: #f0f0f0;
78
+ --track: #303030;
79
+ --chart: #b6b6b6;
80
+ --scrollbar: #505050;
81
+ --overlay: #ffffff08;
82
+ --panel-glint: #ffffff03;
83
+ --warning-bg: #28231a;
84
+ --warning-line: #4b412c;
85
+ --sample-bg: #1d1d16;
86
+ --sample-line: #3c3829;
87
+ --sample-text: #b5ac94;
88
+ --sample-action: #d0c6ad;
89
+ --tooltip: #2c2c2c;
90
+ --shadow: #0004;
91
+ --shadow-heavy: #0009;
92
+ --backdrop: #090909a6;
93
+ --primary-hover: #dedede;
94
+ --route-direct: #6387ff;
95
+ --route-local: #d4b185;
96
+ --route-router: #b39bdd;
97
+ --route-gateway: #45d3e3;
98
+ --route-unknown: #8c8c8c;
99
+ }
100
+ }
101
+
3
102
  *{box-sizing:border-box}
4
- html{height:100%;scrollbar-color:#3d3d3d transparent}
103
+ html{height:100%;scrollbar-color:var(--line-strong) transparent}
5
104
  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
105
  button,input,select{font:inherit}
7
106
  button,a,input{-webkit-tap-highlight-color:transparent}
@@ -33,16 +132,16 @@ small{font-size:11px}
33
132
  .status-dot{height:5px;width:5px;border-radius:50%;background:var(--local);display:inline-block;flex-shrink:0}
34
133
  .status-dot.dim{background:var(--quiet)}
35
134
  .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}
135
+ kbd{font-size:9px;color:var(--quiet);background:var(--node);border:1px solid var(--line);border-radius:4px;padding:2px 5px}
37
136
  .page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:29px}
38
137
  .page-heading p{color:var(--muted);font-size:12px;margin-top:10px}
39
138
  .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}
139
+ .segmented{background:var(--node);border:1px solid var(--line-soft);display:flex;padding:3px;border-radius:7px;gap:1px}
41
140
  .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}
141
+ .segmented button[aria-pressed=true]{background:var(--selected);color:var(--text);box-shadow:0 1px 3px #0002}
43
142
  .collection-time{font-size:10px;color:var(--quiet);display:flex;align-items:center;gap:6px}
44
143
  .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)}
144
+ .button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
46
145
  .button svg{width:13px;height:13px}
47
146
  .button.subtle{background:transparent;color:var(--muted)}
48
147
  .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}
@@ -54,9 +153,9 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
54
153
  .summary-value .unit{font-size:16px;color:var(--quiet);letter-spacing:-.3px}
55
154
  .summary-bottom{font-size:10px;color:var(--quiet);margin-top:8px;display:flex;gap:8px;align-items:center;min-height:15px}
56
155
  .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}
156
+ .sample-disclosure{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--sample-line);border-radius:7px;padding:9px 13px;background:var(--sample-bg);margin-bottom:23px;font-size:11px;color:var(--sample-text)}
157
+ .sample-disclosure button{font-size:10px;background:transparent;border:0;color:var(--sample-action);padding:2px}
158
+ .notice{padding:11px 14px;background:var(--warning-bg);border:1px solid var(--warning-line);border-radius:7px;color:var(--amber);margin-bottom:18px;font-size:12px}
60
159
  .overview-top{display:grid;grid-template-columns:minmax(0,1fr) 277px;gap:22px;margin-bottom:28px}
61
160
  .panel{border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden;background:var(--surface)}
62
161
  .panel-head{padding:19px 21px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}
@@ -67,37 +166,37 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
67
166
  .map-labels span:nth-child(2){text-align:center}
68
167
  .map-labels span:last-child{text-align:right}
69
168
  .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}
169
+ .map-edge{fill:none;stroke:var(--scrollbar);stroke-width:1;opacity:.55;transition:opacity 130ms ease,stroke 130ms ease}
170
+ .map-edge.local{stroke:var(--quiet)}
72
171
  .map-edge.focused{stroke:var(--accent);stroke-width:1.5;opacity:1}
73
172
  .map-edge.faded{opacity:.1}
74
173
  .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}
174
+ .map-node rect{fill:var(--node);stroke:var(--line-strong);stroke-width:1;transition:fill 130ms ease,stroke 130ms ease}
175
+ .map-node:focus-visible rect,.map-node:hover rect{fill:var(--node-hover);stroke:var(--quiet)}
176
+ .map-node text{fill:var(--text);font-family:var(--sans);font-size:10px}
177
+ .map-node .sub{fill:var(--quiet);font-size:8px}
79
178
  .map-node .node-dot{fill:var(--local)}
80
179
  .map-node .cloud-dot{fill:var(--blue)}
81
- .map-node .end-dot{fill:#909090;stroke:var(--surface);stroke-width:3}
180
+ .map-node .end-dot{fill:var(--quiet);stroke:var(--surface);stroke-width:3}
82
181
  .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
182
  .map-legend{display:flex;gap:15px}
84
183
  .legend-item{display:inline-flex;align-items:center;gap:6px}
85
184
  .legend-line{width:15px;height:1px;background:var(--local)}
86
185
  .legend-line.cloud{background:var(--blue)}
87
186
  .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}
187
+ .map-empty .empty-orbit{width:150px;height:72px;margin:3px 0 15px;color:var(--line-active)}
89
188
  .map-empty h3{font-weight:450;color:var(--muted);font-size:12px}
90
189
  .map-empty p{max-width:330px;margin:7px 0 14px;font-size:11px;color:var(--quiet);line-height:1.7}
91
190
  .compute{position:relative;background:var(--surface)}
92
191
  .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}
192
+ .chip{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--scrollbar);border-radius:9px;position:relative;flex-shrink:0;box-shadow:inset 0 0 0 4px var(--node),inset 0 0 0 5px var(--line-strong);color:var(--accent);font-family:var(--mono);font-size:10px}
193
+ .chip:after{content:"";position:absolute;inset:-4px;border:1px solid var(--selected);border-radius:11px}
95
194
  .machine-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:168px}
96
195
  .machine-sub{font-size:10px;color:var(--quiet);margin-top:4px}
97
196
  .compute-readings{padding:0 21px}
98
197
  .meter-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);margin-bottom:9px}
99
198
  .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}
199
+ .memory-meter{height:5px;background:var(--track);border-radius:2px;overflow:hidden;display:flex}
101
200
  .memory-meter span{background:var(--local);height:100%}
102
201
  .memory-note{display:flex;justify-content:space-between;color:var(--quiet);font-size:9px;margin-top:7px}
103
202
  .cpu-row{display:flex;align-items:center;justify-content:space-between;padding:19px 0 15px;border-bottom:1px solid var(--line-soft)}
@@ -112,7 +211,7 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
112
211
  .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
212
  .table-wrap{overflow-x:auto}
114
213
  .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)}
214
+ .data-table th{font-weight:500;color:var(--muted);font-size:12px;letter-spacing:0;text-align:right;padding:0 12px 12px;border-bottom:1px solid var(--line)}
116
215
  .data-table th:first-child{text-align:left;padding-left:0}
117
216
  .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
217
  .data-table td:first-child{padding-left:0;text-align:left;font-family:var(--sans)}
@@ -128,7 +227,7 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
128
227
  .activity-list{list-style:none;margin:0;padding:0}
129
228
  .activity-item{padding:12px 0;border-bottom:1px solid var(--line-soft);display:flex;gap:10px;align-items:flex-start}
130
229
  .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}
230
+ .activity-mark{margin-top:5px;flex-shrink:0;height:5px;width:5px;border-radius:50%;background:var(--quiet)}
132
231
  .activity-mark.failed{background:var(--error)}
133
232
  .activity-item-content{flex:1;min-width:0}
134
233
  .activity-item strong{font-size:11px;font-weight:450;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@@ -142,13 +241,13 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
142
241
  .footer-end{font-family:var(--mono);white-space:nowrap}
143
242
  .activity-chart{padding:10px 0 0;position:relative}
144
243
  .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}
244
+ .chart-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 5}
245
+ .chart-label{fill:var(--quiet);font-family:var(--mono);font-size:9px}
246
+ .chart-bar{fill:var(--secondary);opacity:.7}
247
+ .chart-bar.cloud{fill:var(--blue);opacity:.65}
149
248
  .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}
249
+ .chart-hit:hover{fill:var(--overlay)}
250
+ .chart-tooltip{position:absolute;pointer-events:none;background:var(--tooltip);border:1px solid var(--line-strong);border-radius:7px;padding:8px 11px;box-shadow:0 5px 20px var(--shadow);font-family:var(--mono);font-size:10px;z-index:2;white-space:nowrap}
152
251
  .chart-tooltip[hidden]{display:none}
153
252
  .chart-legend{display:flex;gap:18px;font-size:10px;color:var(--muted);padding:6px 22px 16px}
154
253
  .chart-legend i{height:5px;width:5px;display:inline-block;border-radius:1px;margin-right:6px;background:var(--local)}
@@ -173,7 +272,7 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
173
272
  .instruction-panel{padding:24px;max-width:780px}
174
273
  .instruction-panel p{color:var(--muted);font-size:12px;margin:10px 0 15px;line-height:1.8}
175
274
  .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}
275
+ .instruction-panel pre,.detail-code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.8;background:var(--inset);border:1px solid var(--line);border-radius:7px;padding:17px;color:var(--secondary)}
177
276
  .compute-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;margin-bottom:32px}
178
277
  .hardware-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:25px 22px}
179
278
  .hardware-facts dt{font-size:10px;color:var(--quiet);margin-bottom:7px}
@@ -181,8 +280,8 @@ kbd{font-size:9px;color:var(--quiet);background:#1c1c1c;border:1px solid var(--l
181
280
  .history-chart{padding:0 22px 20px}
182
281
  .history-chart svg{width:100%;height:135px}
183
282
  .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)}
283
+ dialog{color:var(--text);background:var(--surface);border:1px solid var(--line-strong);padding:0;box-shadow:0 24px 100px var(--shadow-heavy);max-height:90svh;max-width:calc(100vw - 32px);outline:none}
284
+ dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(4px)}
186
285
  #inspector{width:450px;border-radius:14px;margin:auto;margin-right:24px;max-height:calc(100svh - 48px)}
187
286
  .inspector-head{padding:26px 27px 22px;border-bottom:1px solid var(--line);position:relative}
188
287
  .inspector-head h2{font-size:23px;letter-spacing:-.6px;font-weight:450;overflow-wrap:anywhere;padding-right:20px}
@@ -199,7 +298,7 @@ dialog::backdrop{background:#090909a6;backdrop-filter:blur(4px)}
199
298
  .workspace-option{padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--raised);text-align:left}
200
299
  .workspace-option strong{font-size:13px;font-weight:450;display:block}
201
300
  .workspace-option span{color:var(--muted);font-size:11px;display:block;margin-top:5px}
202
- .workspace-option.selected{border-color:#727272}
301
+ .workspace-option.selected{border-color:var(--line-active)}
203
302
  .modal-actions{display:flex;gap:10px;margin-top:22px}
204
303
  #command{width:530px;border-radius:12px;margin:16svh auto auto}
205
304
  .command-input-row{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
@@ -208,16 +307,16 @@ dialog::backdrop{background:#090909a6;backdrop-filter:blur(4px)}
208
307
  #command-results{padding:8px;max-height:360px;overflow-y:auto}
209
308
  .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
309
  .command-result small{font-size:10px;color:var(--quiet)}
211
- .command-result:focus,.command-result.selected{background:#2e2e2e;outline:none}
310
+ .command-result:focus,.command-result.selected{background:var(--line);outline:none}
212
311
  .command-footer{border-top:1px solid var(--line);padding:10px 20px;font-size:10px;color:var(--quiet)}
213
312
  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}
313
+ @media(hover:hover) and (pointer:fine){.button:hover,.workspace-option:hover{background:var(--node-hover)}
314
+ .button.primary:hover{background:var(--primary-hover)}
216
315
  .text-button:hover,.panel-action:hover{color:var(--text)}
217
316
  .model-name:hover strong{color:var(--accent)}
218
- .source-row:hover{background:#1b1b1b}
317
+ .source-row:hover{background:var(--stack)}
219
318
  .close-button:hover{background:var(--hover);color:var(--text)}
220
- .command-result:hover{background:#292929}
319
+ .command-result:hover{background:var(--node-hover)}
221
320
  .filter-tabs button:hover{color:var(--text)}}
222
321
  @media(min-width:1650px){.environment-map{height:280px}
223
322
  .compute-machine{padding-top:32px;padding-bottom:25px}
@@ -299,9 +398,9 @@ body:not(.keyboard) #inspector[open]{opacity:1;transform:translateX(0);transitio
299
398
  .map-column-labels text{font-family:var(--mono);font-size:8px;letter-spacing:1px;fill:var(--quiet)}
300
399
  .map-scroll{overflow-x:auto;overscroll-behavior-x:contain}
301
400
  #main:focus{outline:none}
302
- .map-edge.cloud{stroke:#718795}
401
+ .map-edge.cloud{stroke:var(--blue)}
303
402
  .map-edge.focused{stroke:var(--accent)}
304
- .map-node .unknown-dot{fill:#999999}
403
+ .map-node .unknown-dot{fill:var(--quiet)}
305
404
  .map-scroll-hint{display:none}
306
405
  @media(max-width:700px){.environment-map{height:246px;min-width:650px;margin-top:17px}
307
406
  .map-scroll{margin-top:4px}}
@@ -319,24 +418,24 @@ body:not(.keyboard) #inspector[open]{transform:none}}
319
418
  .mini-chart .chart-empty{font-size:0}
320
419
  .chart-empty{height:100%;display:grid;place-items:center;color:var(--quiet);font-size:11px}
321
420
  .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}
421
+ .chart-metric-tabs{display:flex;gap:3px;border:1px solid var(--line);border-radius:6px;padding:3px;background:var(--inset)}
323
422
  .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}
423
+ .chart-metric-tabs button[aria-pressed=true]{background:var(--selected);color:var(--text);box-shadow:0 1px 2px #0002}
325
424
  .sample-reading{font-size:19px;font-weight:450;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
326
425
  .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}
426
+ .sample-readout strong{font:10px var(--mono);font-weight:400;color:var(--secondary)}
328
427
  .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}
428
+ .sample-cadence{margin-left:auto;color:var(--quiet);font:9px var(--mono)}
429
+ .history-chart p.chart-method{margin-top:0;font-size:9px;color:var(--quiet)}
331
430
  .history-chart>p{font-size:9px}
332
- .panel{box-shadow:0 1px 0 #ffffff03 inset}
431
+ .panel{box-shadow:0 1px 0 var(--panel-glint) inset}
333
432
  @media(hover:hover) and (pointer:fine){.chart-metric-tabs button:hover{color:var(--text)}}
334
433
  @media(max-width:700px){.sample-readout{flex-wrap:wrap;font-size:9px;gap:7px}
335
434
  .sample-readout strong{font-size:9px}
336
435
  .sample-cadence{font-size:8px}
337
436
  .liveline-canvas{height:170px}}
338
437
  .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}
438
+ .scope-summary .scope-link{font:inherit;color:var(--text);text-decoration:underline;text-decoration-color:var(--scrollbar);text-underline-offset:4px}
340
439
  .entity-head,.entity-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 64px;gap:14px;align-items:center;text-align:right}
341
440
  .entity-head{padding:0 0 11px;color:var(--quiet);font-size:10px;border-bottom:1px solid var(--line)}
342
441
  .entity-head>span:first-child,.entity-row>span:first-child{text-align:left}
@@ -362,7 +461,7 @@ body:not(.keyboard) #inspector[open]{transform:none}}
362
461
  .path-summary-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
363
462
  .path-summary-item .route-badge{font-size:11px}
364
463
  .path-total{font:11px var(--mono);color:var(--text)}
365
- .path-share-track{height:2px;display:block;background:#2c2c2c;margin-top:11px;overflow:hidden}
464
+ .path-share-track{height:2px;display:block;background:var(--line);margin-top:11px;overflow:hidden}
366
465
  .path-share-track i{height:100%;display:block;background:var(--route-color)}
367
466
  .map-edge.route-thread{stroke:var(--route-color);stroke-width:1.4;opacity:.7}
368
467
  .map-edge.route-thread.focused{stroke:var(--route-color);stroke-width:2;opacity:1}
@@ -424,13 +523,13 @@ body:not(.keyboard) #inspector[open]{transform:none}}
424
523
  .capacity-row-title,.capacity-row-reading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
425
524
  .capacity-row-title strong{font-weight:450;font-size:12px;line-height:1.5}
426
525
  .capacity-status{font-size:9px;white-space:nowrap;color:var(--quiet)}
427
- .capacity-status.stale,.pool-sample-note.stale{color:#c5aa84}
526
+ .capacity-status.stale,.pool-sample-note.stale{color:var(--amber)}
428
527
  .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}
528
+ .capacity-row-reading strong{font:11px var(--mono);color:var(--text);white-space:nowrap}
529
+ .capacity-track{display:block;width:100%;height:3px;background:var(--track);margin-top:9px;overflow:hidden;border-radius:1px}
530
+ .capacity-track i{display:block;width:100%;height:100%;background:var(--muted);transform-origin:left}
531
+ .capacity-track.stale i{background:var(--amber)}
532
+ .capacity-track.unknown{background:transparent;border-top:1px dashed var(--line-strong)}
434
533
  .capacity-row-foot{display:block;font-size:9px;color:var(--quiet);margin-top:9px;line-height:1.6}
435
534
  .capacity-foot{padding:14px 20px 18px;border-top:1px solid var(--line-soft);font-size:10px;line-height:1.7;color:var(--quiet)}
436
535
  .environment-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:38px;margin:34px 0 40px}
@@ -448,27 +547,27 @@ body:not(.keyboard) #inspector[open]{transform:none}}
448
547
  .detail-section-title>span{font-size:10px;color:var(--quiet);text-align:right}
449
548
  .agent-map-link{float:right}
450
549
  .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}
550
+ .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:var(--stack);text-align:left}
551
+ .path-hop{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--secondary)}
453
552
  .path-hop svg{width:16px;height:16px;color:var(--route-color);flex-shrink:0}
454
- .path-arrow{color:#777;font-size:11px}
553
+ .path-arrow{color:var(--line-active);font-size:11px}
455
554
  .pool-sample-note{margin:20px 0 6px;font-size:11px;line-height:1.8;color:var(--quiet)}
456
555
  .pool-reading{padding:15px 0}
457
556
  .pool-reading>div:first-child{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:var(--muted)}
458
557
  .pool-reading strong{font:13px var(--mono);color:var(--text)}
459
558
  .pool-reading .capacity-track{margin-top:12px;height:4px}
460
559
  .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}
560
+ .agent-links button{display:flex;justify-content:space-between;gap:10px;background:var(--raised);border:1px solid var(--track);border-radius:6px;padding:10px;text-align:left;font-size:10px;line-height:1.5;color:var(--secondary)}
462
561
  .agent-links button span{color:var(--quiet)}
463
562
  .path-steps{list-style:none;margin:0;padding:0}
464
563
  .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}
564
+ .path-steps li+li:before{content:'';position:absolute;left:10px;top:-8px;height:16px;border-left:1px solid var(--scrollbar)}
466
565
  .path-steps svg{width:22px;height:22px;color:var(--route-color)}
467
566
  .path-steps strong{font-size:13px;font-weight:450}
468
567
  .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}}
568
+ @media(hover:hover) and (pointer:fine){.capacity-row:hover .capacity-row-title strong,.deployment-row:hover strong{color:var(--strong)}
569
+ .path-row:hover,.agent-links button:hover{background:var(--node-hover);border-color:var(--scrollbar)}
570
+ .capacity-row:hover .capacity-track i{background:var(--text)}}
472
571
  @media(max-width:1190px){.overview-top{grid-template-columns:minmax(0,1fr) 270px}
473
572
  .capacity-row-title{flex-wrap:wrap;gap:3px}
474
573
  .capacity-rows{padding-left:16px;padding-right:16px}}
@@ -503,27 +602,27 @@ body:not(.keyboard) #inspector[open]{transform:none}}
503
602
  .inspector-tabs{display:flex;border-bottom:1px solid var(--line);gap:23px}
504
603
  .inspector-tabs button{position:relative;background:none;border:0;color:var(--quiet);font-size:12px;padding:12px 0}
505
604
  .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}
605
+ .inspector-tabs button[aria-pressed=true]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--secondary);border-radius:2px}
507
606
  .inspector-tabs+.detail-section-title{margin-top:22px}
508
607
  @media(max-width:700px){.agent-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
509
608
  .agent-metrics strong{font-size:22px}}
510
609
  .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}
610
+ .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 var(--line-strong);border-radius:7px;background:var(--raised);color:var(--text);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
611
  .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}
612
+ .select-chevron{width:14px;height:14px;flex-shrink:0;color:var(--quiet)}
613
+ .select-trigger:active,.select-trigger[aria-expanded=true]{transform:none;background:var(--node-hover);border-color:var(--line-active);color:var(--strong)}
614
+ .select-trigger[aria-expanded=true] .select-chevron{color:var(--text)}
615
+ .select-trigger:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}
517
616
  .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}
617
+ .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:var(--scrollbar) transparent;background:var(--raised);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 10px 30px var(--shadow),0 2px 6px #0003;color:var(--text);font-family:var(--sans);outline:none}
618
+ .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:var(--secondary);cursor:pointer;user-select:none}
520
619
  .select-option>span:first-child{min-width:0;overflow-wrap:anywhere}
521
620
  .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}
621
+ .select-option[aria-selected=true]{color:var(--strong)}
622
+ .select-option.is-active{background:var(--selected);color:var(--strong)}
524
623
  .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}}
624
+ @media(hover:hover) and (pointer:fine){.select-trigger:hover:not(:disabled){background:var(--node-hover);border-color:var(--scrollbar)}
625
+ .select-trigger[aria-expanded=true]:hover{border-color:var(--line-active)}}
527
626
  body:not(.keyboard) .select-menu{transition:opacity 120ms var(--ease);@starting-style{opacity:0}}
528
627
  body.keyboard .select-trigger,body.keyboard .select-menu{transition:none}
529
628
  @media(max-width:700px){.select-trigger{min-height:38px}
@@ -570,9 +669,9 @@ body.keyboard .select-trigger,body.keyboard .select-menu{transition:none}
570
669
  .host-table td:nth-child(2),.host-table td:nth-child(5){font-family:var(--sans);color:var(--muted)}
571
670
  .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
671
  .host-group th span{margin-left:10px;color:var(--quiet);font-size:11px}
573
- .host-row.selected{background:#1b1b1b}
672
+ .host-row.selected{background:var(--stack)}
574
673
  .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}
674
+ .host-table .host-row.selected td:first-child{border-left-color:var(--secondary)}
576
675
  .host-table .host-row td:last-child{padding-right:12px}
577
676
  .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
677
  .host-name small{font-size:10px;color:var(--quiet);font-weight:400}
@@ -604,9 +703,9 @@ body.keyboard .select-trigger,body.keyboard .select-menu{transition:none}
604
703
  .loaded-model strong{font-size:12px;font-weight:450}
605
704
  .loaded-model>div:last-child>strong{font-family:var(--mono)}
606
705
  .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}}
706
+ @media(hover:hover){.volume-paths button:hover{background:var(--overlay)}
707
+ .host-name:hover{color:var(--strong)}
708
+ .host-row:not(.selected):hover{background:var(--panel-glint)}}
610
709
  @media(max-width:1100px){.volume-paths{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px}
611
710
  .volume-paths button:first-child{padding-left:12px}
612
711
  .volume-paths button:first-child:before{left:12px}
@@ -697,7 +796,7 @@ html{scroll-padding-top:calc(var(--header-height) + 16px)}
697
796
  .terminal-masthead{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
698
797
  .terminal-identity{display:flex;align-items:center;gap:22px;min-width:0}
699
798
  .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}
799
+ .brand svg{width:22px;height:25px;color:var(--text)}
701
800
  .wordmark{font-size:20px;line-height:1.2;letter-spacing:-.7px;font-weight:550}
702
801
  .terminal-product{border-left:1px solid var(--line);padding-left:22px;color:var(--muted);font-size:12px;white-space:nowrap}
703
802
  .header-actions{display:flex;align-items:center;gap:22px;min-width:0}
@@ -753,7 +852,7 @@ body.keyboard .terminal-tabs [role=tab]{transition:none}
753
852
  .service-evidence-list strong{font-size:12px;font-weight:450}
754
853
  .service-evidence-list span,.service-evidence-list small{font-size:11px;color:var(--muted)}
755
854
  .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)}}
855
+ @media(hover:hover) and (pointer:fine){.service-model-row:not(:disabled):hover{color:var(--strong);background:var(--raised)}.service-table tbody tr:hover{background:var(--overlay)}}
757
856
  @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
857
  @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
858
 
@@ -768,12 +867,12 @@ body.keyboard .terminal-tabs [role=tab]{transition:none}
768
867
 
769
868
  /* Stacks retain the map's original scale; disclosure only adds detail. */
770
869
  .environment-toolbar .map-controls{display:flex;align-items:center;gap:18px}
771
- .environment-panel .complete-map-scroll{scrollbar-width:thin;scrollbar-color:#424242 transparent}
870
+ .environment-panel .complete-map-scroll{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
772
871
  .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}
872
+ .complete-map .map-stack-back{fill:var(--stack);stroke:var(--track)}
873
+ .complete-map .map-stack-count{fill:var(--muted);font:10px var(--mono)}
874
+ .map-disclosure{fill:none;stroke:var(--muted);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
875
+ .complete-map .map-node:focus-visible>rect:not(.map-stack-back){stroke:var(--text);stroke-width:1.5}
777
876
  @media(prefers-reduced-motion:reduce){.complete-map .map-node rect,.complete-map .map-edge{transition:none}}
778
877
  body.keyboard .complete-map .map-node rect,body.keyboard .complete-map .map-edge{transition:none}
779
878
  @media(max-width:700px){.environment-toolbar{flex-wrap:wrap}.environment-toolbar .map-controls{margin-left:auto}.environment-panel .complete-map-scroll{max-height:480px}}
@@ -782,7 +881,7 @@ body.keyboard .complete-map .map-node rect,body.keyboard .complete-map .map-edge
782
881
  .history-coverage{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--quiet);font-size:11px;line-height:1.6;margin:-13px 0 24px;flex-wrap:wrap}
783
882
  .history-dates{color:var(--muted);margin-left:8px;font-variant-numeric:tabular-nums}
784
883
  .history-coverage .text-button{font-size:11px}
785
- .history-partial{color:#c6aa79}
884
+ .history-partial{color:var(--amber)}
786
885
  @media(max-width:1000px){.page-heading{flex-wrap:wrap}.heading-controls{flex-wrap:wrap}.history-coverage{margin-top:-12px}}
787
886
  @media(max-width:700px){.page-heading{gap:18px}.heading-controls{width:100%;margin:0;justify-content:space-between;gap:10px}.heading-controls .segmented{max-width:100%}.heading-controls .segmented button{font-size:11px;min-height:30px;padding:5px 9px}.history-coverage{font-size:11px;margin-bottom:20px}.history-dates{display:block;margin-left:0}}
788
887
 
@@ -804,10 +903,10 @@ body.keyboard .complete-map .map-node rect,body.keyboard .complete-map .map-edge
804
903
  .index-progress strong { font-size:13px;font-weight:500; }
805
904
  .index-progress-copy span,.index-progress small { font-size:12px;color:var(--muted); }
806
905
  .index-progress small { grid-column:1 / -1; }
807
- .index-progress progress,.terminal-loading progress { appearance:none;display:block;height:2px;border:0;background:#303030;border-radius:2px;width:100%;overflow:hidden; }
808
- .index-progress progress::-webkit-progress-bar,.terminal-loading progress::-webkit-progress-bar { background:#303030; }
809
- .index-progress progress::-webkit-progress-value,.terminal-loading progress::-webkit-progress-value { background:#b6b6b6; }
810
- .index-progress progress::-moz-progress-bar,.terminal-loading progress::-moz-progress-bar { background:#b6b6b6; }
906
+ .index-progress progress,.terminal-loading progress { appearance:none;display:block;height:2px;border:0;background:var(--track);border-radius:2px;width:100%;overflow:hidden; }
907
+ .index-progress progress::-webkit-progress-bar,.terminal-loading progress::-webkit-progress-bar { background:var(--track); }
908
+ .index-progress progress::-webkit-progress-value,.terminal-loading progress::-webkit-progress-value { background:var(--secondary); }
909
+ .index-progress progress::-moz-progress-bar,.terminal-loading progress::-moz-progress-bar { background:var(--secondary); }
811
910
  progress:indeterminate { opacity:.55; }
812
911
  .terminal-loading { padding:64px 0;max-width:600px; }
813
912
  .terminal-loading h1 { font-size:26px;letter-spacing:-.035em;font-weight:500;margin:0 0 14px; }
@@ -815,3 +914,133 @@ progress:indeterminate { opacity:.55; }
815
914
  .terminal-loading progress { max-width:260px;margin-bottom:16px; }
816
915
  .terminal-loading>span { color:var(--muted);font-size:12px; }
817
916
  @media(max-width:700px) { .index-progress { grid-template-columns:1fr auto;gap:14px; }.index-progress progress { grid-column:1 / -1;grid-row:2; }.index-progress small { line-height:1.5; } }
917
+ /* Hosted comparison uses the terminal's existing typography and neutral surfaces. */
918
+ .sample-disclosure a { color: inherit; white-space: nowrap; text-decoration: none; }
919
+ .sample-disclosure a:hover { color: var(--text); }
920
+ .sample-method { display: flex; justify-content: flex-end; margin: -10px 0 18px; font-size: 11px; }
921
+ .comparison { margin: 0 0 32px; padding: 28px 30px 20px; border: 1px solid var(--line-strong); border-radius: 16px; background: var(--stack); box-shadow: inset 0 1px 0 var(--panel-glint); }
922
+ .comparison-top { display: flex; align-items: center; gap: 28px; }
923
+ .comparison-bottom { display: grid; grid-template-columns: minmax(0,1fr) 24px minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 26px; padding: 26px 0; border-block: 1px solid var(--line); }
924
+ .comparison-top { justify-content: space-between; margin-bottom: 26px; }
925
+ .comparison h2 { margin: 0 0 8px; font-size: 28px; line-height: 1.2; font-weight: 500; letter-spacing: -.85px; }
926
+ .comparison-top p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
927
+ .comparison-switch { display: flex; padding: 4px; gap: 3px; border: 1px solid var(--track); border-radius: 9px; background: var(--bg); flex-shrink: 0; }
928
+ .comparison-switch button { border: 0; border-radius: 5px; background: transparent; color: var(--quiet); padding: 11px 16px; font: inherit; font-size: 12px; cursor: pointer; transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms ease-out; }
929
+ .comparison-switch button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); box-shadow: 0 1px 3px #0003; }
930
+ .comparison-switch button:active { transform: scale(.98); }
931
+ .comparison-switch button:focus-visible { outline: 2px solid var(--muted); outline-offset: 3px; }
932
+ .comparison-cost { display: grid; gap: 10px; min-width: 0; color: var(--muted); transition: color 180ms ease-out; }
933
+ .comparison-cost.selected { color: var(--strong); }
934
+ .comparison-cost > span { font-size: 12px; color: var(--muted); }
935
+ .comparison-cost strong { font-size: clamp(30px,3.15vw,44px); line-height: 1.15; letter-spacing: -1.5px; font-weight: 450; font-variant-numeric: tabular-nums; white-space: nowrap; }
936
+ .comparison-arrow { color: var(--line-active); font-size: 24px; padding-top: 26px; text-align: center; }
937
+ .comparison-saving { min-width: 0; padding-left: 26px; border-left: 1px solid var(--line-strong); display: grid; gap: 7px; }
938
+ .comparison-saving strong { color: var(--amber); font-size: 28px; line-height: 1.2; letter-spacing: -.7px; font-weight: 450; }
939
+ .comparison-saving span { color: var(--muted); font-size: 12px; line-height: 1.5; font-variant-numeric: tabular-nums; }
940
+ .comparison-saving > button { justify-self: start; margin-top: 3px; padding: 0; font-size: 12px; color: var(--text); }
941
+ .comparison-note { margin: 12px 0 0; color: var(--quiet); font-size: 11px; line-height: 1.7; }
942
+ .pricing-method { font-size: 12px; line-height: 1.7; color: var(--muted); padding-bottom: 16px; }
943
+ .price-assignment { padding: 22px 0; border-top: 1px solid var(--line); font-size: 12px; }
944
+ .price-provider { display: flex; justify-content: space-between; margin-bottom: 16px; }
945
+ .price-provider > span:last-child { color: var(--quiet); font-variant-numeric: tabular-nums; }
946
+ .price-models { display: grid; grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr); gap: 12px; }
947
+ .price-models > div { display: flex; flex-direction: column; gap: 7px; }
948
+ .price-models strong { font-size: 13px; font-weight: 450; }
949
+ .price-models span, .price-result span { color: var(--quiet); font-size: 11px; }
950
+ .price-assignment a { color: var(--muted); font-size: 11px; text-decoration-color: var(--scrollbar); text-underline-offset: 3px; }
951
+ .price-assignment a:hover { color: var(--strong); }
952
+ .price-result { margin-top: 18px; color: var(--text); font-variant-numeric: tabular-nums; }
953
+ @media (max-width: 1000px) {
954
+ .comparison { padding-inline: 24px; }
955
+ .comparison-bottom { grid-template-columns: minmax(0,1fr) 20px minmax(0,1fr); gap: 20px; }
956
+ .comparison-saving { grid-column: 1 / -1; grid-template-columns: 1fr auto; border-left: 0; border-top: 1px solid var(--line); padding: 20px 0 0; margin-top: 4px; }
957
+ .comparison-saving > span { grid-row: 2; }
958
+ .comparison-saving > button { grid-column: 2; grid-row: 1 / 3; align-self: center; }
959
+ }
960
+ @media (max-width: 650px) {
961
+ .comparison { margin-bottom: 24px; padding: 22px 18px 18px; border-radius: 12px; }
962
+ .comparison h2 { font-size: 24px; letter-spacing: -.65px; }
963
+ .comparison-top { align-items: flex-start; flex-direction: column; gap: 20px; margin-bottom: 22px; }
964
+ .comparison-top p { line-height: 1.6; }
965
+ .comparison-switch { width: 100%; }
966
+ .comparison-switch button { flex: 1; padding: 10px 8px; }
967
+ .comparison-bottom { gap: 12px; grid-template-columns: minmax(0,1fr) 16px minmax(0,1fr); padding: 22px 0; }
968
+ .comparison-cost { gap: 8px; }
969
+ .comparison-cost strong { font-size: clamp(19px,5.5vw,32px); letter-spacing: -.6px; }
970
+ .comparison-cost > span { font-size: 11px; }
971
+ .comparison-arrow { font-size: 18px; padding-top: 22px; }
972
+ .comparison-saving { grid-template-columns: minmax(0,1fr); padding-top: 18px; margin-top: 8px; }
973
+ .comparison-saving strong { font-size: 25px; }
974
+ .comparison-saving > button { grid-column: 1; grid-row: 3; margin-top: 5px; }
975
+ .comparison-note { margin-top: 15px; }
976
+ .sample-disclosure { align-items: flex-start; gap: 14px; }
977
+ .sample-disclosure a { white-space: normal; min-width: 70px; }
978
+ }
979
+ @media (prefers-reduced-motion: reduce) { .comparison-switch button, .comparison-cost { transition: none; } }
980
+
981
+ .pricing-assumptions { margin-top: 14px; }
982
+ .pricing-assumptions summary { cursor: pointer; color: var(--text); }
983
+ .pricing-assumptions p { margin-top: 12px; }
984
+ body.keyboard .comparison-switch button, body.keyboard .comparison-cost { transition: none; }
985
+
986
+ .comparison-controls { display: grid; gap: 10px; min-width: 314px; }
987
+ .comparison-preference { display: flex; align-items: center; gap: 12px; }
988
+ .comparison-preference > span { font-size: 11px; color: var(--quiet); white-space: nowrap; }
989
+ .comparison-preference .select-trigger { flex: 1; width: auto; min-width: 0; }
990
+ .comparison-eligibility { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--secondary); font-size: 12px; line-height: 1.6; }
991
+ .comparison-eligibility > span:last-child { color: var(--quiet); }
992
+ .preference-unresolved { color: var(--amber); }
993
+ .price-workload { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; margin-bottom: 12px; }
994
+ .price-workload h3 { font-size: 14px; font-weight: 450; margin: 0; }
995
+ .price-workload > span { color: var(--muted); font-size: 11px; }
996
+ .price-workload > .preference-unresolved { color: var(--amber); }
997
+ .price-decision { line-height: 1.6; color: var(--secondary); margin: 16px 0 10px; }
998
+ .benchmark-checks { margin: 12px 0; border-top: 1px solid var(--node-hover); }
999
+ .benchmark-check { display: flex; justify-content: space-between; gap: 16px; align-items: center; border-bottom: 1px solid var(--node-hover); padding: 10px 0; }
1000
+ .benchmark-check > div { display: grid; gap: 4px; }
1001
+ .benchmark-check > div > span { color: var(--quiet); font-size: 11px; }
1002
+ .benchmark-check strong { font-weight: 400; font-size: 12px; color: var(--secondary); }
1003
+ .benchmark-values { text-align: right; color: var(--text); font-size: 12px; font-variant-numeric: tabular-nums; }
1004
+ .candidate-review { padding: 16px 0; border-bottom: 1px solid var(--node-hover); }
1005
+ .candidate-review > p { line-height: 1.6; color: var(--muted); }
1006
+ .candidate-review > a { display: block; margin: 10px 0; }
1007
+ .candidate-review .benchmark-method { font-size: 11px; color: var(--quiet); }
1008
+ @media (max-width: 650px) { .comparison-controls { width: 100%; min-width: 0; } .comparison-eligibility { gap: 6px; } .comparison-note { font-size: 12px; } }
1009
+
1010
+ .comparison-switch button { flex: 1; }
1011
+
1012
+ .comparison-decisions { margin-top: 18px; border-top: 1px solid var(--node-hover); padding-top: 14px; }
1013
+ .comparison-decisions > summary { cursor: pointer; width: fit-content; color: var(--secondary); font-size: 12px; }
1014
+ .comparison-decisions > summary > span { margin-left: 8px; color: var(--quiet); font-variant-numeric: tabular-nums; }
1015
+ .comparison-decisions .data-table { margin-top: 14px; }
1016
+ .comparison-decisions td { vertical-align: top; }
1017
+ .comparison-decisions td small { display: block; color: var(--quiet); font-size: 12px; margin-top: 6px; }
1018
+ .candidate-review > summary { display: flex; justify-content: space-between; gap: 16px; font-size: 12px; line-height: 1.5; }
1019
+ .candidate-review > summary > span:last-child { color: var(--quiet); white-space: nowrap; }
1020
+ .price-models > div > span { overflow-wrap: anywhere; }
1021
+
1022
+ .comparison-decisions .data-table th, .comparison-decisions .data-table td { text-align: left; font-family: var(--sans); }
1023
+ .comparison-decisions .data-table td { font-size: 12px; color: var(--text); }
1024
+ .comparison-decisions > summary::marker { color: var(--line-active); }
1025
+ .comparison-decisions .table-wrap { max-width: 100%; }
1026
+ .comparison-decisions .data-table td:last-child { color: var(--quiet); }
1027
+
1028
+ .comparison-unresolved { margin-top: 18px; padding: 16px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
1029
+ .comparison-unresolved > div { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
1030
+ .comparison-unresolved strong { font-size: 13px; font-weight: 450; color: var(--text); }
1031
+ .comparison-unresolved ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; list-style: none; padding: 0; margin: 16px 0; }
1032
+ .comparison-unresolved li { font-size: 12px; }
1033
+ .comparison-unresolved small { display: block; margin-top: 6px; font-size: 12px; color: var(--quiet); }
1034
+ .comparison-unresolved > p { font-size: 12px; color: var(--muted); line-height: 1.6; margin-bottom: 0; }
1035
+ @media (max-width: 650px) { .comparison-unresolved ul { grid-template-columns: 1fr; gap: 14px; } }
1036
+
1037
+ /* Preference exceptions use the terminal's existing warm evidence color. */
1038
+ .comparison-override{display:flex;align-items:baseline;gap:8px 14px;flex-wrap:wrap;margin:12px 0 0;padding:12px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.6}
1039
+ .comparison-override strong,.preference-override,.price-workload .preference-override{color:var(--amber)}
1040
+ .comparison-override span{color:var(--muted)}
1041
+ .override-evidence{padding:14px 0;border-block:1px solid var(--line);font-size:12px;line-height:1.7}
1042
+ .override-evidence strong{color:var(--amber);font-weight:500}
1043
+ .override-evidence ul{margin:8px 0;padding-left:18px}
1044
+ .benchmark-check[data-check="regression"] .benchmark-values{color:var(--amber)}
1045
+
1046
+ ::selection { background: var(--selected); color: var(--text); }