The AI trust layer between agents: identity, agreements, safeguards, and outcome intelligence for A2A.

Viewing files at commit 68c3fd2f8af0Commit detailsView latest

apps/dashboard/src/styles.css 297 lines · 4.9 KB · css
1
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&display=swap');
2
:root {
3
  font-family: Manrope, sans-serif;
4
  color: #e8e8e3;
5
  background: #0c0d0c;
6
  font-synthesis: none;
7
}
8
* {
9
  box-sizing: border-box;
10
}
11
body {
12
  margin: 0;
13
  min-width: 320px;
14
  background: radial-gradient(circle at 85% -10%, #24372e 0, transparent 28rem), #0c0d0c;
15
}
16
main {
17
  max-width: 1240px;
18
  margin: auto;
19
  padding: 28px 36px 64px;
20
}
21
header {
22
  display: flex;
23
  align-items: center;
24
  gap: 14px;
25
  padding-bottom: 26px;
26
  border-bottom: 1px solid #2e312e;
27
}
28
.mark {
29
  width: 42px;
30
  height: 42px;
31
  display: grid;
32
  place-items: center;
33
  color: #10130f;
34
  background: #b9f27c;
35
  font: 500 14px 'DM Mono';
36
  border-radius: 4px;
37
}
38
h1,
39
h2,
40
h3,
41
p {
42
  margin: 0;
43
}
44
h1 {
45
  font-size: 20px;
46
  letter-spacing: -0.03em;
47
}
48
.eyebrow {
49
  color: #818881;
50
  font: 500 10px 'DM Mono';
51
  letter-spacing: 0.14em;
52
  text-transform: uppercase;
53
}
54
.status {
55
  margin-left: auto;
56
  border: 1px solid #415545;
57
  color: #b9f27c;
58
  padding: 8px 12px;
59
  border-radius: 99px;
60
  font: 500 10px 'DM Mono';
61
}
62
.status::before {
63
  content: '';
64
  display: inline-block;
65
  width: 6px;
66
  height: 6px;
67
  margin-right: 8px;
68
  border-radius: 50%;
69
  background: currentColor;
70
  box-shadow: 0 0 10px currentColor;
71
}
72
.status.offline {
73
  color: #f28b7c;
74
  border-color: #65433f;
75
}
76
.hero {
77
  display: grid;
78
  grid-template-columns: 1.6fr 0.6fr;
79
  gap: 40px;
80
  align-items: end;
81
  min-height: 360px;
82
  padding: 64px 0 50px;
83
}
84
.hero h2 {
85
  margin: 14px 0 20px;
86
  font-size: clamp(42px, 6vw, 76px);
87
  line-height: 0.98;
88
  letter-spacing: -0.065em;
89
  font-weight: 500;
90
}
91
.hero h2 em {
92
  color: #b9f27c;
93
  font-style: normal;
94
}
95
.hero > div > p:last-child {
96
  color: #9b9f9a;
97
  max-width: 620px;
98
  line-height: 1.7;
99
}
100
.signal {
101
  border-left: 1px solid #3d433e;
102
  padding-left: 28px;
103
  display: flex;
104
  flex-direction: column;
105
  gap: 8px;
106
}
107
.signal span,
108
.signal small {
109
  color: #737a74;
110
  font: 10px 'DM Mono';
111
  text-transform: uppercase;
112
}
113
.signal strong {
114
  color: #b9f27c;
115
  font: 500 20px 'DM Mono';
116
}
117
.metrics {
118
  display: grid;
119
  grid-template-columns: repeat(4, 1fr);
120
  border: 1px solid #2e312e;
121
  border-width: 1px 0;
122
}
123
.metrics > div {
124
  padding: 24px 20px;
125
  display: flex;
126
  flex-direction: column;
127
  gap: 15px;
128
  border-right: 1px solid #2e312e;
129
}
130
.metrics > div:last-child {
131
  border: 0;
132
}
133
.metrics span {
134
  color: #777e78;
135
  font: 10px 'DM Mono';
136
  text-transform: uppercase;
137
}
138
.metrics strong {
139
  font: 500 30px 'DM Mono';
140
}
141
.grid {
142
  display: grid;
143
  grid-template-columns: 1fr 1fr;
144
  gap: 16px;
145
  padding-top: 16px;
146
}
147
.panel {
148
  min-height: 300px;
149
  padding: 24px;
150
  background: #131513;
151
  border: 1px solid #292d29;
152
  border-radius: 6px;
153
}
154
.panelHead {
155
  display: flex;
156
  justify-content: space-between;
157
  padding-bottom: 20px;
158
  border-bottom: 1px solid #292d29;
159
}
160
.panelHead h3 {
161
  font-size: 15px;
162
}
163
.panelHead p {
164
  margin-top: 5px;
165
  color: #747a75;
166
  font-size: 11px;
167
}
168
.panelHead > span {
169
  color: #b9f27c;
170
}
171
.row {
172
  display: flex;
173
  gap: 12px;
174
  align-items: center;
175
  padding: 14px 0;
176
  border-bottom: 1px solid #242724;
177
}
178
.row div {
179
  display: flex;
180
  flex: 1;
181
  flex-direction: column;
182
  gap: 4px;
183
}
184
.row strong,
185
.profile strong {
186
  font-size: 12px;
187
}
188
.row small,
189
.profile small {
190
  color: #717772;
191
  font: 10px 'DM Mono';
192
}
193
.row > b {
194
  color: #8c948d;
195
  font: 9px 'DM Mono';
196
  text-transform: uppercase;
197
}
198
.dot {
199
  width: 7px;
200
  height: 7px;
201
  flex: none;
202
  border-radius: 50%;
203
  background: #b9f27c;
204
}
205
.dot.policy_violation {
206
  background: #f28b7c;
207
}
208
.dot.policy_warning {
209
  background: #f2cb7c;
210
}
211
.empty {
212
  display: grid;
213
  place-items: center;
214
  min-height: 190px;
215
  text-align: center;
216
  color: #656b66;
217
  font: 11px/1.7 'DM Mono';
218
}
219
.profile {
220
  padding: 16px 0;
221
}
222
.profile > div {
223
  display: flex;
224
  justify-content: space-between;
225
  margin-bottom: 14px;
226
}
227
.meter {
228
  display: grid;
229
  grid-template-columns: 80px 1fr 36px;
230
  align-items: center;
231
  gap: 8px;
232
  margin-top: 8px;
233
  font: 9px 'DM Mono';
234
  color: #7f867f;
235
}
236
.meter i {
237
  height: 3px;
238
  background: #2b302b;
239
}
240
.meter i b {
241
  display: block;
242
  height: 100%;
243
  background: #b9f27c;
244
}
245
.meter strong {
246
  color: #a4aaa5;
247
  text-align: right;
248
}
249
.split {
250
  display: grid;
251
  grid-template-columns: 1fr 1fr;
252
  margin-top: 28px;
253
  border: 1px solid #292d29;
254
}
255
.split div {
256
  padding: 22px;
257
  display: flex;
258
  flex-direction: column;
259
  gap: 8px;
260
}
261
.split div:first-child {
262
  border-right: 1px solid #292d29;
263
}
264
.split strong {
265
  font: 500 28px 'DM Mono';
266
}
267
.split small {
268
  color: #777e78;
269
  font-size: 10px;
270
}
271
.note {
272
  color: #747a75;
273
  font-size: 11px;
274
  line-height: 1.6;
275
  margin-top: 20px;
276
}
277
@media (max-width: 760px) {
278
  main {
279
    padding: 20px;
280
  }
281
  .hero,
282
  .grid {
283
    grid-template-columns: 1fr;
284
  }
285
  .hero {
286
    padding-top: 50px;
287
  }
288
  .metrics {
289
    grid-template-columns: 1fr 1fr;
290
  }
291
  .metrics > div:nth-child(2) {
292
    border-right: 0;
293
  }
294
  .metrics > div:nth-child(-n + 2) {
295
    border-bottom: 1px solid #2e312e;
296
  }
297
}