@echothink-ui/project 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +5 -0
  2. package/dist/components/ProjectActivityTimeline.d.ts +5 -0
  3. package/dist/components/ProjectAppDomainPanel.d.ts +8 -0
  4. package/dist/components/ProjectCard.d.ts +8 -0
  5. package/dist/components/ProjectCreateForm.d.ts +7 -0
  6. package/dist/components/ProjectDashboardTemplate.d.ts +11 -0
  7. package/dist/components/ProjectManagementPage.d.ts +17 -0
  8. package/dist/components/ProjectMembersPanel.d.ts +9 -0
  9. package/dist/components/ProjectModelConfigPanel.d.ts +9 -0
  10. package/dist/components/ProjectPermissionPanel.d.ts +9 -0
  11. package/dist/components/ProjectResourcePanel.d.ts +6 -0
  12. package/dist/components/ProjectScopeSelector.d.ts +7 -0
  13. package/dist/components/ProjectSettingsPanel.d.ts +6 -0
  14. package/dist/components/ProjectStatusSummary.d.ts +6 -0
  15. package/dist/components/ProjectSummaryPanel.d.ts +5 -0
  16. package/dist/components/ProjectTab.d.ts +3 -0
  17. package/dist/components/ProjectTabGroup.d.ts +12 -0
  18. package/dist/components/ProjectTable.d.ts +9 -0
  19. package/dist/index.cjs +2112 -0
  20. package/dist/index.cjs.map +1 -0
  21. package/dist/index.css +2059 -0
  22. package/dist/index.css.map +1 -0
  23. package/dist/index.d.ts +21 -0
  24. package/dist/index.js +2098 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/types.d.ts +99 -0
  27. package/dist/utils.d.ts +288 -0
  28. package/package.json +45 -0
  29. package/src/components/ProjectActivityTimeline.test.tsx +43 -0
  30. package/src/components/ProjectActivityTimeline.tsx +118 -0
  31. package/src/components/ProjectAppDomainPanel.tsx +147 -0
  32. package/src/components/ProjectCard.tsx +117 -0
  33. package/src/components/ProjectCreateForm.test.tsx +45 -0
  34. package/src/components/ProjectCreateForm.tsx +176 -0
  35. package/src/components/ProjectDashboardTemplate.tsx +107 -0
  36. package/src/components/ProjectManagementPage.tsx +112 -0
  37. package/src/components/ProjectMembersPanel.tsx +181 -0
  38. package/src/components/ProjectModelConfigPanel.tsx +294 -0
  39. package/src/components/ProjectPermissionPanel.tsx +174 -0
  40. package/src/components/ProjectResourcePanel.tsx +154 -0
  41. package/src/components/ProjectScopeSelector.test.tsx +50 -0
  42. package/src/components/ProjectScopeSelector.tsx +92 -0
  43. package/src/components/ProjectSettingsPanel.test.tsx +25 -0
  44. package/src/components/ProjectSettingsPanel.tsx +244 -0
  45. package/src/components/ProjectStatusSummary.tsx +165 -0
  46. package/src/components/ProjectSummaryPanel.test.tsx +37 -0
  47. package/src/components/ProjectSummaryPanel.tsx +85 -0
  48. package/src/components/ProjectTab.tsx +8 -0
  49. package/src/components/ProjectTabGroup.tsx +38 -0
  50. package/src/components/ProjectTable.tsx +138 -0
  51. package/src/index.test.tsx +337 -0
  52. package/src/index.tsx +41 -0
  53. package/src/styles.css +2431 -0
  54. package/src/types.ts +111 -0
  55. package/src/utils.ts +96 -0
package/src/styles.css ADDED
@@ -0,0 +1,2431 @@
1
+ @import "@echothink-ui/core/styles.css";
2
+ @import "@echothink-ui/layouts/styles.css";
3
+ @import "@echothink-ui/data/styles.css";
4
+ @import "@echothink-ui/charts/styles.css";
5
+
6
+ .eth-project-management-page,
7
+ .eth-project-status-summary,
8
+ .eth-project-table {
9
+ color: var(--eth-color-text-primary);
10
+ font-family: var(--eth-font-family);
11
+ min-inline-size: 0;
12
+ }
13
+
14
+ .eth-project-management-page {
15
+ background: var(--eth-color-background);
16
+ display: grid;
17
+ gap: var(--eth-space-lg);
18
+ inline-size: 100%;
19
+ }
20
+
21
+ .eth-project-management-page > .eth-page-header {
22
+ margin: 0;
23
+ }
24
+
25
+ .eth-project-management-page__filters {
26
+ align-items: flex-end;
27
+ background: var(--eth-color-layer-01);
28
+ border-block-end: 1px solid var(--eth-color-border-subtle);
29
+ display: flex;
30
+ gap: 0;
31
+ inline-size: 100%;
32
+ min-inline-size: 0;
33
+ overflow-x: auto;
34
+ padding-inline: var(--eth-space-xl);
35
+ scrollbar-width: none;
36
+ }
37
+
38
+ .eth-project-management-page__filters::-webkit-scrollbar {
39
+ display: none;
40
+ }
41
+
42
+ .eth-project-management-page__filter {
43
+ align-items: center;
44
+ background: transparent;
45
+ border: 0;
46
+ border-block-end: 2px solid transparent;
47
+ color: var(--eth-color-text-secondary);
48
+ cursor: pointer;
49
+ display: inline-flex;
50
+ flex: 0 0 auto;
51
+ font: inherit;
52
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
53
+ line-height: 1.2857;
54
+ min-block-size: 2.5rem;
55
+ padding: 0 var(--eth-space-lg);
56
+ position: relative;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .eth-project-management-page__filter:hover {
61
+ color: var(--eth-color-text-primary);
62
+ }
63
+
64
+ .eth-project-management-page__filter:focus-visible {
65
+ outline: 2px solid var(--eth-color-focus);
66
+ outline-offset: -2px;
67
+ }
68
+
69
+ .eth-project-management-page__filter[aria-disabled="true"] {
70
+ cursor: default;
71
+ }
72
+
73
+ .eth-project-management-page__filter--active {
74
+ border-block-end-color: var(--eth-color-interactive-primary);
75
+ color: var(--eth-color-text-primary);
76
+ font-weight: 600;
77
+ }
78
+
79
+ .eth-project-status-summary {
80
+ display: grid;
81
+ gap: var(--eth-space-lg);
82
+ padding-inline: var(--eth-space-xl);
83
+ }
84
+
85
+ .eth-project-status-summary__kpis {
86
+ display: grid;
87
+ gap: var(--eth-space-lg);
88
+ grid-template-columns: repeat(4, minmax(0, 1fr));
89
+ min-inline-size: 0;
90
+ }
91
+
92
+ .eth-project-status-summary .eth-kpi {
93
+ background: var(--eth-color-layer-01);
94
+ block-size: 100%;
95
+ min-block-size: 7rem;
96
+ }
97
+
98
+ .eth-project-status-summary__bar {
99
+ background: var(--eth-color-layer-02);
100
+ border: 1px solid var(--eth-color-border-subtle);
101
+ display: flex;
102
+ min-block-size: 0.5rem;
103
+ overflow: hidden;
104
+ }
105
+
106
+ .eth-project-status-summary__bar-segment {
107
+ background: var(--eth-color-border-strong);
108
+ display: block;
109
+ min-inline-size: 0.25rem;
110
+ }
111
+
112
+ .eth-project-status-summary__bar-segment--running {
113
+ background: var(--eth-color-info);
114
+ }
115
+
116
+ .eth-project-status-summary__bar-segment--in-progress {
117
+ background: #4589ff;
118
+ }
119
+
120
+ .eth-project-status-summary__bar-segment--approval-required,
121
+ .eth-project-status-summary__bar-segment--blocked,
122
+ .eth-project-status-summary__bar-segment--failed {
123
+ background: var(--eth-color-danger);
124
+ }
125
+
126
+ .eth-project-status-summary__bar-segment--completed,
127
+ .eth-project-status-summary__bar-segment--succeeded {
128
+ background: var(--eth-color-success);
129
+ }
130
+
131
+ .eth-project-status-summary__bar-segment--not-started {
132
+ background: var(--eth-color-text-helper);
133
+ }
134
+
135
+ .eth-project-status-summary__legend {
136
+ align-items: center;
137
+ display: flex;
138
+ flex-wrap: wrap;
139
+ gap: var(--eth-space-sm);
140
+ min-inline-size: 0;
141
+ }
142
+
143
+ .eth-project-table {
144
+ padding-block-end: var(--eth-space-xl);
145
+ padding-inline: var(--eth-space-xl);
146
+ }
147
+
148
+ .eth-project-table .eth-data-table-wrap {
149
+ background: var(--eth-color-layer-01);
150
+ }
151
+
152
+ .eth-project-table .eth-project-table__table {
153
+ inline-size: 100%;
154
+ min-inline-size: 58rem;
155
+ table-layout: fixed;
156
+ }
157
+
158
+ .eth-project-table .eth-project-table__table th,
159
+ .eth-project-table .eth-project-table__table td {
160
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
161
+ line-height: 1.2857;
162
+ overflow: hidden;
163
+ padding-inline: var(--eth-space-lg);
164
+ text-overflow: ellipsis;
165
+ vertical-align: middle;
166
+ }
167
+
168
+ .eth-project-table .eth-project-table__table thead th {
169
+ background: var(--eth-color-layer-selected);
170
+ color: var(--eth-color-text-secondary);
171
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
172
+ font-weight: 600;
173
+ letter-spacing: 0;
174
+ white-space: nowrap;
175
+ }
176
+
177
+ .eth-project-table__name {
178
+ align-items: start;
179
+ display: flex;
180
+ flex-direction: column;
181
+ gap: var(--eth-space-2xs);
182
+ min-inline-size: 0;
183
+ }
184
+
185
+ .eth-project-table__title,
186
+ .eth-project-table__description,
187
+ .eth-project-table__owner,
188
+ .eth-project-table__updated {
189
+ display: block;
190
+ min-inline-size: 0;
191
+ overflow: hidden;
192
+ text-overflow: ellipsis;
193
+ white-space: nowrap;
194
+ }
195
+
196
+ .eth-project-table__title {
197
+ color: var(--eth-color-text-primary);
198
+ font-weight: 600;
199
+ line-height: 1.2857;
200
+ }
201
+
202
+ .eth-project-table__description {
203
+ color: var(--eth-color-text-secondary);
204
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
205
+ line-height: 1.3333;
206
+ }
207
+
208
+ .eth-project-table__title-button.eth-button {
209
+ block-size: auto;
210
+ display: inline-flex;
211
+ justify-content: flex-start;
212
+ min-block-size: 1.5rem;
213
+ min-inline-size: 0;
214
+ max-inline-size: 100%;
215
+ padding: 0;
216
+ text-align: start;
217
+ }
218
+
219
+ .eth-project-table__title-button.eth-button .cds--btn__text {
220
+ display: block;
221
+ min-inline-size: 0;
222
+ overflow: hidden;
223
+ text-overflow: ellipsis;
224
+ white-space: nowrap;
225
+ }
226
+
227
+ .eth-project-table__status {
228
+ display: inline-flex;
229
+ max-inline-size: 100%;
230
+ min-inline-size: 0;
231
+ }
232
+
233
+ .eth-project-table__metric {
234
+ display: block;
235
+ font-variant-numeric: tabular-nums;
236
+ min-inline-size: 0;
237
+ overflow: hidden;
238
+ text-overflow: ellipsis;
239
+ white-space: nowrap;
240
+ }
241
+
242
+ .eth-project-tab {
243
+ font-family: var(--eth-font-family);
244
+ }
245
+
246
+ .eth-project-card {
247
+ --eth-project-card-accent: var(--eth-color-interactive-primary);
248
+ --eth-project-card-border: var(--eth-color-border-subtle);
249
+ --eth-project-card-layer: var(--eth-color-layer-01);
250
+ --eth-project-card-layer-alt: var(--eth-color-layer-02);
251
+ --eth-project-card-text-secondary: var(--eth-color-text-secondary);
252
+
253
+ background: var(--eth-project-card-layer);
254
+ border: 1px solid var(--eth-project-card-border);
255
+ border-block-start: 3px solid var(--eth-project-card-accent);
256
+ color: var(--eth-color-text-primary);
257
+ display: grid;
258
+ font-family: var(--eth-font-family);
259
+ grid-template-rows: auto 1fr auto;
260
+ inline-size: min(100%, 44rem);
261
+ min-inline-size: 0;
262
+ overflow: hidden;
263
+ }
264
+
265
+ .eth-project-card--blocked,
266
+ .eth-project-card--failed,
267
+ .eth-project-card--approval-required {
268
+ --eth-project-card-accent: var(--eth-color-danger);
269
+ }
270
+
271
+ .eth-project-card--warning,
272
+ .eth-project-card--stale,
273
+ .eth-project-card--pending-approval {
274
+ --eth-project-card-accent: var(--eth-color-warning);
275
+ }
276
+
277
+ .eth-project-card--succeeded,
278
+ .eth-project-card--completed,
279
+ .eth-project-card--synced,
280
+ .eth-project-card--active {
281
+ --eth-project-card-accent: var(--eth-color-success);
282
+ }
283
+
284
+ .eth-project-card--inactive,
285
+ .eth-project-card--not-started,
286
+ .eth-project-card--paused {
287
+ --eth-project-card-accent: var(--eth-color-border-strong);
288
+ }
289
+
290
+ .eth-project-card__header {
291
+ align-items: start;
292
+ border-block-end: 1px solid var(--eth-project-card-border);
293
+ display: grid;
294
+ gap: var(--eth-space-lg);
295
+ grid-template-columns: minmax(0, 1fr) auto;
296
+ min-inline-size: 0;
297
+ padding: var(--eth-space-lg);
298
+ }
299
+
300
+ .eth-project-card__heading {
301
+ display: grid;
302
+ gap: var(--eth-space-xs);
303
+ min-inline-size: 0;
304
+ }
305
+
306
+ .eth-project-card__heading h3,
307
+ .eth-project-card__heading p,
308
+ .eth-project-card__metadata,
309
+ .eth-project-card__metadata dt,
310
+ .eth-project-card__metadata dd {
311
+ margin: 0;
312
+ }
313
+
314
+ .eth-project-card__heading h3 {
315
+ font-size: calc(1.25rem * var(--eth-text-scale, 1));
316
+ font-weight: 600;
317
+ line-height: 1.4;
318
+ overflow-wrap: anywhere;
319
+ }
320
+
321
+ .eth-project-card__heading p {
322
+ color: var(--eth-project-card-text-secondary);
323
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
324
+ line-height: 1.4286;
325
+ overflow-wrap: anywhere;
326
+ }
327
+
328
+ .eth-project-card__status {
329
+ justify-self: end;
330
+ min-inline-size: 0;
331
+ }
332
+
333
+ .eth-project-card__status .cds--tag,
334
+ .eth-project-card .eth-status-dot {
335
+ margin: 0;
336
+ max-inline-size: 100%;
337
+ }
338
+
339
+ .eth-project-card__metadata {
340
+ display: grid;
341
+ grid-template-columns: repeat(5, minmax(0, 1fr));
342
+ min-inline-size: 0;
343
+ }
344
+
345
+ .eth-project-card__metadata div {
346
+ align-content: start;
347
+ border-inline-end: 1px solid var(--eth-project-card-border);
348
+ display: grid;
349
+ gap: var(--eth-space-xs);
350
+ min-block-size: 5rem;
351
+ min-inline-size: 0;
352
+ padding: var(--eth-space-lg);
353
+ }
354
+
355
+ .eth-project-card__metadata div:last-child {
356
+ border-inline-end: 0;
357
+ }
358
+
359
+ .eth-project-card__metadata dt {
360
+ color: var(--eth-project-card-text-secondary);
361
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
362
+ font-weight: 600;
363
+ letter-spacing: 0;
364
+ line-height: 1.3333;
365
+ }
366
+
367
+ .eth-project-card__metadata dd {
368
+ color: var(--eth-color-text-primary);
369
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
370
+ font-variant-numeric: tabular-nums;
371
+ font-weight: 600;
372
+ line-height: 1.4286;
373
+ min-inline-size: 0;
374
+ overflow-wrap: anywhere;
375
+ }
376
+
377
+ .eth-project-card__actions {
378
+ align-items: center;
379
+ background: var(--eth-project-card-layer-alt);
380
+ border-block-start: 1px solid var(--eth-project-card-border);
381
+ display: flex;
382
+ flex-wrap: wrap;
383
+ gap: var(--eth-space-sm);
384
+ justify-content: flex-end;
385
+ min-block-size: 3rem;
386
+ min-inline-size: 0;
387
+ padding: var(--eth-space-md) var(--eth-space-lg);
388
+ }
389
+
390
+ .eth-project-card__actions .eth-actions {
391
+ align-items: center;
392
+ display: flex;
393
+ flex-wrap: wrap;
394
+ gap: var(--eth-space-sm);
395
+ justify-content: flex-end;
396
+ min-inline-size: 0;
397
+ }
398
+
399
+ .eth-project-card__actions .eth-button {
400
+ min-inline-size: 6rem;
401
+ }
402
+
403
+ .eth-project-scope-selector {
404
+ color: var(--eth-color-text-primary);
405
+ inline-size: min(100%, 48rem);
406
+ min-inline-size: 0;
407
+ }
408
+
409
+ .eth-project-scope-selector:focus {
410
+ outline: none;
411
+ }
412
+
413
+ .eth-project-scope-selector:focus-visible {
414
+ outline: 2px solid var(--eth-color-focus);
415
+ outline-offset: 2px;
416
+ }
417
+
418
+ .eth-project-scope-selector__group {
419
+ background: var(--eth-color-border-subtle);
420
+ border: 1px solid var(--eth-color-border-subtle);
421
+ display: grid;
422
+ gap: 1px;
423
+ grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
424
+ inline-size: 100%;
425
+ min-inline-size: 0;
426
+ }
427
+
428
+ .eth-project-scope-selector__item {
429
+ background: var(--eth-color-layer-01);
430
+ color: var(--eth-color-text-primary);
431
+ cursor: pointer;
432
+ display: block;
433
+ min-block-size: 4.5rem;
434
+ min-inline-size: 0;
435
+ position: relative;
436
+ }
437
+
438
+ .eth-project-scope-selector__item:not(.eth-project-scope-selector__item--readonly):hover {
439
+ background: var(--eth-color-layer-hover);
440
+ }
441
+
442
+ .eth-project-scope-selector__item--active {
443
+ background: var(--eth-color-layer-selected);
444
+ box-shadow: inset 0 0 0 2px var(--eth-color-focus);
445
+ z-index: 1;
446
+ }
447
+
448
+ .eth-project-scope-selector__item--active::before {
449
+ background: var(--eth-color-focus);
450
+ block-size: 0.1875rem;
451
+ content: "";
452
+ inline-size: 100%;
453
+ inset-block-start: 0;
454
+ inset-inline-start: 0;
455
+ position: absolute;
456
+ }
457
+
458
+ .eth-project-scope-selector__item--readonly {
459
+ cursor: default;
460
+ }
461
+
462
+ .eth-project-scope-selector__item:focus-within {
463
+ outline: 2px solid var(--eth-color-focus);
464
+ outline-offset: -2px;
465
+ z-index: 2;
466
+ }
467
+
468
+ .eth-project-scope-selector__control {
469
+ block-size: 1px;
470
+ border: 0;
471
+ clip: rect(0 0 0 0);
472
+ clip-path: inset(50%);
473
+ inline-size: 1px;
474
+ margin: -1px;
475
+ overflow: hidden;
476
+ padding: 0;
477
+ position: absolute;
478
+ white-space: nowrap;
479
+ }
480
+
481
+ .eth-project-scope-selector__content {
482
+ display: grid;
483
+ gap: var(--eth-space-sm);
484
+ min-block-size: 4.5rem;
485
+ min-inline-size: 0;
486
+ padding: var(--eth-space-lg);
487
+ padding-block-start: var(--eth-space-md);
488
+ }
489
+
490
+ .eth-project-scope-selector__title-row {
491
+ align-items: flex-start;
492
+ display: flex;
493
+ gap: var(--eth-space-md);
494
+ justify-content: space-between;
495
+ min-inline-size: 0;
496
+ }
497
+
498
+ .eth-project-scope-selector__label {
499
+ color: var(--eth-color-text-primary);
500
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
501
+ font-weight: 600;
502
+ line-height: 1.2857;
503
+ min-inline-size: 0;
504
+ overflow: hidden;
505
+ text-overflow: ellipsis;
506
+ white-space: nowrap;
507
+ }
508
+
509
+ .eth-project-scope-selector__status {
510
+ display: inline-flex;
511
+ flex: 0 1 auto;
512
+ min-inline-size: 0;
513
+ }
514
+
515
+ .eth-project-scope-selector__status .eth-status-dot {
516
+ margin: 0;
517
+ max-inline-size: 8rem;
518
+ }
519
+
520
+ .eth-project-scope-selector__kind {
521
+ color: var(--eth-color-text-secondary);
522
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
523
+ line-height: 1.3333;
524
+ overflow: hidden;
525
+ text-overflow: ellipsis;
526
+ white-space: nowrap;
527
+ }
528
+
529
+ .eth-project-scope-selector__empty.eth-state {
530
+ inline-size: 100%;
531
+ margin: 0;
532
+ }
533
+
534
+ @media (max-width: 36rem) {
535
+ .eth-project-scope-selector__group {
536
+ grid-template-columns: 1fr;
537
+ }
538
+
539
+ .eth-project-scope-selector__content {
540
+ min-block-size: 4rem;
541
+ }
542
+ }
543
+
544
+ .eth-project-summary-panel {
545
+ --eth-project-summary-accent: var(--eth-color-interactive-primary);
546
+ --eth-project-summary-border: var(--eth-color-border-subtle);
547
+ --eth-project-summary-layer: var(--eth-color-layer-01);
548
+ --eth-project-summary-layer-alt: var(--eth-color-layer-02);
549
+ --eth-project-summary-text-secondary: var(--eth-color-text-secondary);
550
+
551
+ background: var(--eth-project-summary-layer);
552
+ border: 1px solid var(--eth-project-summary-border);
553
+ border-block-start: 3px solid var(--eth-project-summary-accent);
554
+ color: var(--eth-color-text-primary);
555
+ display: grid;
556
+ font-family: var(--eth-font-family);
557
+ inline-size: min(100%, 36rem);
558
+ min-inline-size: 0;
559
+ overflow: hidden;
560
+ }
561
+
562
+ .eth-project-summary-panel--blocked,
563
+ .eth-project-summary-panel--failed,
564
+ .eth-project-summary-panel--approval-required {
565
+ --eth-project-summary-accent: var(--eth-color-danger);
566
+ }
567
+
568
+ .eth-project-summary-panel--warning,
569
+ .eth-project-summary-panel--stale,
570
+ .eth-project-summary-panel--pending-approval {
571
+ --eth-project-summary-accent: var(--eth-color-warning);
572
+ }
573
+
574
+ .eth-project-summary-panel--succeeded,
575
+ .eth-project-summary-panel--completed,
576
+ .eth-project-summary-panel--synced,
577
+ .eth-project-summary-panel--active {
578
+ --eth-project-summary-accent: var(--eth-color-success);
579
+ }
580
+
581
+ .eth-project-summary-panel--inactive,
582
+ .eth-project-summary-panel--not-started,
583
+ .eth-project-summary-panel--paused {
584
+ --eth-project-summary-accent: var(--eth-color-border-strong);
585
+ }
586
+
587
+ .eth-project-summary-panel:focus {
588
+ outline: none;
589
+ }
590
+
591
+ .eth-project-summary-panel:focus-visible {
592
+ outline: 2px solid var(--eth-color-focus);
593
+ outline-offset: -2px;
594
+ }
595
+
596
+ .eth-project-summary-panel__header {
597
+ align-items: start;
598
+ border-block-end: 1px solid var(--eth-project-summary-border);
599
+ display: grid;
600
+ gap: var(--eth-space-lg);
601
+ grid-template-columns: minmax(0, 1fr) auto;
602
+ min-inline-size: 0;
603
+ padding: var(--eth-space-lg);
604
+ }
605
+
606
+ .eth-project-summary-panel__heading {
607
+ display: grid;
608
+ gap: var(--eth-space-xs);
609
+ min-inline-size: 0;
610
+ }
611
+
612
+ .eth-project-summary-panel__heading h3,
613
+ .eth-project-summary-panel__heading p,
614
+ .eth-project-summary-panel__metadata,
615
+ .eth-project-summary-panel__metadata dt,
616
+ .eth-project-summary-panel__metadata dd {
617
+ margin: 0;
618
+ }
619
+
620
+ .eth-project-summary-panel__heading h3 {
621
+ font-size: calc(1.25rem * var(--eth-text-scale, 1));
622
+ font-weight: 600;
623
+ line-height: 1.4;
624
+ overflow-wrap: anywhere;
625
+ }
626
+
627
+ .eth-project-summary-panel__heading p {
628
+ color: var(--eth-project-summary-text-secondary);
629
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
630
+ line-height: 1.4286;
631
+ overflow-wrap: anywhere;
632
+ }
633
+
634
+ .eth-project-summary-panel__status {
635
+ justify-self: end;
636
+ min-inline-size: 0;
637
+ }
638
+
639
+ .eth-project-summary-panel__status .eth-badge,
640
+ .eth-project-summary-panel .eth-status-dot {
641
+ margin: 0;
642
+ max-inline-size: 100%;
643
+ }
644
+
645
+ .eth-project-summary-panel__metadata {
646
+ display: grid;
647
+ grid-template-columns: repeat(2, minmax(0, 1fr));
648
+ min-inline-size: 0;
649
+ }
650
+
651
+ .eth-project-summary-panel__metadata-item {
652
+ align-content: start;
653
+ border-block-end: 1px solid var(--eth-project-summary-border);
654
+ display: grid;
655
+ gap: var(--eth-space-xs);
656
+ min-block-size: 4.75rem;
657
+ min-inline-size: 0;
658
+ padding: var(--eth-space-lg);
659
+ }
660
+
661
+ .eth-project-summary-panel__metadata-item:nth-child(odd) {
662
+ border-inline-end: 1px solid var(--eth-project-summary-border);
663
+ }
664
+
665
+ .eth-project-summary-panel__metadata-item:nth-last-child(-n + 2) {
666
+ border-block-end: 0;
667
+ }
668
+
669
+ .eth-project-summary-panel__metadata-item--health {
670
+ background: var(--eth-project-summary-layer-alt);
671
+ }
672
+
673
+ .eth-project-summary-panel__metadata dt {
674
+ color: var(--eth-project-summary-text-secondary);
675
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
676
+ font-weight: 600;
677
+ letter-spacing: 0;
678
+ line-height: 1.3333;
679
+ }
680
+
681
+ .eth-project-summary-panel__metadata dd {
682
+ color: var(--eth-color-text-primary);
683
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
684
+ font-variant-numeric: tabular-nums;
685
+ font-weight: 600;
686
+ line-height: 1.4286;
687
+ min-inline-size: 0;
688
+ overflow-wrap: anywhere;
689
+ }
690
+
691
+ @media (width <= 36rem) {
692
+ .eth-project-summary-panel {
693
+ inline-size: 100%;
694
+ }
695
+
696
+ .eth-project-summary-panel__header {
697
+ grid-template-columns: 1fr;
698
+ }
699
+
700
+ .eth-project-summary-panel__status {
701
+ justify-self: start;
702
+ }
703
+
704
+ .eth-project-summary-panel__metadata {
705
+ grid-template-columns: 1fr;
706
+ }
707
+
708
+ .eth-project-summary-panel__metadata-item,
709
+ .eth-project-summary-panel__metadata-item:nth-child(odd) {
710
+ border-inline-end: 0;
711
+ }
712
+
713
+ .eth-project-summary-panel__metadata-item:nth-last-child(-n + 2) {
714
+ border-block-end: 1px solid var(--eth-project-summary-border);
715
+ }
716
+
717
+ .eth-project-summary-panel__metadata-item:last-child {
718
+ border-block-end: 0;
719
+ }
720
+ }
721
+
722
+ .eth-project-status-summary {
723
+ --eth-project-status-border: var(--eth-color-border-subtle);
724
+ --eth-project-status-layer: var(--eth-color-layer-01);
725
+ --eth-project-status-layer-raised: var(--eth-color-layer-02);
726
+
727
+ background: var(--eth-project-status-layer);
728
+ border: 1px solid var(--eth-project-status-border);
729
+ color: var(--eth-color-text-primary);
730
+ display: grid;
731
+ font-family: var(--eth-font-family);
732
+ inline-size: min(100%, 56rem);
733
+ min-inline-size: 0;
734
+ }
735
+
736
+ .eth-project-status-summary:focus {
737
+ outline: none;
738
+ }
739
+
740
+ .eth-project-status-summary:focus-visible {
741
+ outline: 2px solid var(--eth-color-focus);
742
+ outline-offset: -2px;
743
+ }
744
+
745
+ .eth-project-status-summary__header {
746
+ align-items: flex-start;
747
+ background: var(--eth-project-status-layer-raised);
748
+ border-block-end: 1px solid var(--eth-project-status-border);
749
+ display: flex;
750
+ gap: var(--eth-space-lg);
751
+ justify-content: space-between;
752
+ min-inline-size: 0;
753
+ padding: var(--eth-space-lg);
754
+ }
755
+
756
+ .eth-project-status-summary__heading {
757
+ display: grid;
758
+ gap: var(--eth-space-xs);
759
+ min-inline-size: 0;
760
+ }
761
+
762
+ .eth-project-status-summary__heading h3,
763
+ .eth-project-status-summary__heading p,
764
+ .eth-project-status-summary__empty {
765
+ margin: 0;
766
+ }
767
+
768
+ .eth-project-status-summary__heading h3 {
769
+ color: var(--eth-color-text-primary);
770
+ font-size: calc(1rem * var(--eth-text-scale, 1));
771
+ font-weight: 600;
772
+ line-height: 1.375;
773
+ overflow-wrap: anywhere;
774
+ }
775
+
776
+ .eth-project-status-summary__heading p,
777
+ .eth-project-status-summary__empty {
778
+ color: var(--eth-color-text-secondary);
779
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
780
+ line-height: 1.4286;
781
+ overflow-wrap: anywhere;
782
+ }
783
+
784
+ .eth-project-status-summary__header > .eth-badge {
785
+ flex: 0 1 auto;
786
+ margin: 0;
787
+ max-inline-size: 14rem;
788
+ }
789
+
790
+ .eth-project-status-summary__kpis {
791
+ display: grid;
792
+ grid-template-columns: repeat(4, minmax(0, 1fr));
793
+ min-inline-size: 0;
794
+ }
795
+
796
+ .eth-project-status-summary__kpis .eth-kpi {
797
+ align-content: start;
798
+ background: var(--eth-project-status-layer-raised);
799
+ border: 0;
800
+ border-block-start: 0;
801
+ display: grid;
802
+ gap: var(--eth-space-sm);
803
+ min-block-size: 6.75rem;
804
+ min-inline-size: 0;
805
+ padding: var(--eth-space-lg);
806
+ }
807
+
808
+ .eth-project-status-summary__kpis .eth-kpi + .eth-kpi {
809
+ border-inline-start: 1px solid var(--eth-project-status-border);
810
+ }
811
+
812
+ .eth-project-status-summary__kpis .eth-kpi__header {
813
+ align-items: flex-start;
814
+ display: flex;
815
+ flex-wrap: wrap;
816
+ gap: var(--eth-space-xs);
817
+ justify-content: space-between;
818
+ min-inline-size: 0;
819
+ }
820
+
821
+ .eth-project-status-summary__kpis .eth-kpi__title,
822
+ .eth-project-status-summary__kpis .eth-kpi__description {
823
+ color: var(--eth-color-text-secondary);
824
+ margin: 0;
825
+ overflow-wrap: anywhere;
826
+ }
827
+
828
+ .eth-project-status-summary__kpis .eth-kpi__value {
829
+ color: var(--eth-color-text-primary);
830
+ display: block;
831
+ font-size: calc(1.75rem * var(--eth-text-scale, 1));
832
+ font-weight: 400;
833
+ line-height: 1.2857;
834
+ }
835
+
836
+ .eth-project-status-summary__distribution {
837
+ border-block-start: 1px solid var(--eth-project-status-border);
838
+ display: grid;
839
+ gap: var(--eth-space-md);
840
+ min-inline-size: 0;
841
+ padding: var(--eth-space-lg);
842
+ }
843
+
844
+ .eth-project-status-summary__bar {
845
+ background: var(--eth-color-border-subtle);
846
+ block-size: var(--eth-space-sm);
847
+ display: flex;
848
+ inline-size: 100%;
849
+ min-inline-size: 0;
850
+ overflow: hidden;
851
+ }
852
+
853
+ .eth-project-status-summary__bar-segment {
854
+ background: var(--eth-color-border-strong);
855
+ flex-basis: 0;
856
+ min-inline-size: 0;
857
+ }
858
+
859
+ .eth-project-status-summary__bar-segment + .eth-project-status-summary__bar-segment {
860
+ border-inline-start: 1px solid var(--eth-project-status-layer-raised);
861
+ }
862
+
863
+ .eth-project-status-summary__bar-segment--inflight,
864
+ .eth-project-status-summary__bar-segment--running,
865
+ .eth-project-status-summary__bar-segment--in-progress {
866
+ background: var(--eth-color-info);
867
+ }
868
+
869
+ .eth-project-status-summary__bar-segment--attention,
870
+ .eth-project-status-summary__bar-segment--approval-required,
871
+ .eth-project-status-summary__bar-segment--blocked,
872
+ .eth-project-status-summary__bar-segment--failed {
873
+ background: var(--eth-color-danger);
874
+ }
875
+
876
+ .eth-project-status-summary__bar-segment--warning,
877
+ .eth-project-status-summary__bar-segment--pending-approval,
878
+ .eth-project-status-summary__bar-segment--stale {
879
+ background: var(--eth-color-warning);
880
+ }
881
+
882
+ .eth-project-status-summary__bar-segment--complete,
883
+ .eth-project-status-summary__bar-segment--completed,
884
+ .eth-project-status-summary__bar-segment--succeeded,
885
+ .eth-project-status-summary__bar-segment--synced,
886
+ .eth-project-status-summary__bar-segment--active {
887
+ background: var(--eth-color-success);
888
+ }
889
+
890
+ .eth-project-status-summary__bar-segment--paused,
891
+ .eth-project-status-summary__bar-segment--queued,
892
+ .eth-project-status-summary__bar-segment--not-started,
893
+ .eth-project-status-summary__bar-segment--inactive {
894
+ background: var(--eth-color-border-strong);
895
+ }
896
+
897
+ .eth-project-status-summary__legend {
898
+ align-items: center;
899
+ display: flex;
900
+ flex-wrap: wrap;
901
+ gap: var(--eth-space-sm);
902
+ min-inline-size: 0;
903
+ }
904
+
905
+ .eth-project-status-summary__legend > span {
906
+ display: inline-flex;
907
+ max-inline-size: 100%;
908
+ min-inline-size: 0;
909
+ }
910
+
911
+ .eth-project-status-summary__legend .eth-status-dot {
912
+ background: var(--eth-project-status-layer);
913
+ margin: 0;
914
+ max-inline-size: 100%;
915
+ }
916
+
917
+ @media (width <= 54rem) {
918
+ .eth-project-status-summary__kpis {
919
+ grid-template-columns: repeat(2, minmax(0, 1fr));
920
+ }
921
+
922
+ .eth-project-status-summary__kpis .eth-kpi {
923
+ border-block-start: 1px solid var(--eth-project-status-border);
924
+ }
925
+
926
+ .eth-project-status-summary__kpis .eth-kpi:nth-child(-n + 2) {
927
+ border-block-start: 0;
928
+ }
929
+
930
+ .eth-project-status-summary__kpis .eth-kpi:nth-child(2n + 1) {
931
+ border-inline-start: 0;
932
+ }
933
+ }
934
+
935
+ @media (width <= 34rem) {
936
+ .eth-project-status-summary__header {
937
+ display: grid;
938
+ }
939
+
940
+ .eth-project-status-summary__kpis {
941
+ grid-template-columns: minmax(0, 1fr);
942
+ }
943
+
944
+ .eth-project-status-summary__kpis .eth-kpi,
945
+ .eth-project-status-summary__kpis .eth-kpi:nth-child(-n + 2) {
946
+ border-block-start: 1px solid var(--eth-project-status-border);
947
+ border-inline-start: 0;
948
+ }
949
+
950
+ .eth-project-status-summary__kpis .eth-kpi:first-child {
951
+ border-block-start: 0;
952
+ }
953
+ }
954
+
955
+ .eth-project-app-domain-panel {
956
+ background: var(--eth-color-layer-01);
957
+ border: 1px solid var(--eth-color-border-subtle);
958
+ color: var(--eth-color-text-primary);
959
+ display: grid;
960
+ gap: var(--eth-space-lg);
961
+ inline-size: 100%;
962
+ min-inline-size: 0;
963
+ padding: var(--eth-space-lg);
964
+ }
965
+
966
+ .eth-project-app-domain-panel:focus {
967
+ outline: none;
968
+ }
969
+
970
+ .eth-project-app-domain-panel:focus-visible {
971
+ outline: 2px solid var(--eth-color-focus);
972
+ outline-offset: -2px;
973
+ }
974
+
975
+ .eth-project-app-domain-panel__header {
976
+ align-items: flex-start;
977
+ display: flex;
978
+ gap: var(--eth-space-lg);
979
+ justify-content: space-between;
980
+ min-inline-size: 0;
981
+ }
982
+
983
+ .eth-project-app-domain-panel__header h3 {
984
+ color: var(--eth-color-text-primary);
985
+ font-size: calc(1rem * var(--eth-text-scale, 1));
986
+ font-weight: 600;
987
+ line-height: 1.375;
988
+ margin: 0;
989
+ }
990
+
991
+ .eth-project-app-domain-panel__summary {
992
+ border: 1px solid var(--eth-color-border-subtle);
993
+ display: grid;
994
+ flex: 0 0 auto;
995
+ grid-template-columns: repeat(3, minmax(4.75rem, 1fr));
996
+ margin: 0;
997
+ }
998
+
999
+ .eth-project-app-domain-panel__summary div {
1000
+ background: var(--eth-color-layer-02);
1001
+ display: grid;
1002
+ gap: var(--eth-space-2xs);
1003
+ min-inline-size: 0;
1004
+ padding: var(--eth-space-sm) var(--eth-space-md);
1005
+ }
1006
+
1007
+ .eth-project-app-domain-panel__summary div + div {
1008
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
1009
+ }
1010
+
1011
+ .eth-project-app-domain-panel__summary dt,
1012
+ .eth-project-app-domain-panel__summary dd {
1013
+ margin: 0;
1014
+ }
1015
+
1016
+ .eth-project-app-domain-panel__summary dt {
1017
+ color: var(--eth-color-text-secondary);
1018
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1019
+ line-height: 1.3333;
1020
+ }
1021
+
1022
+ .eth-project-app-domain-panel__summary dd {
1023
+ color: var(--eth-color-text-primary);
1024
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1025
+ font-variant-numeric: tabular-nums;
1026
+ font-weight: 600;
1027
+ line-height: 1.2857;
1028
+ }
1029
+
1030
+ .eth-project-app-domain-panel .eth-data-table-wrap {
1031
+ border-color: var(--eth-color-border-subtle);
1032
+ }
1033
+
1034
+ .eth-project-app-domain-panel__table {
1035
+ min-inline-size: 36rem;
1036
+ table-layout: fixed;
1037
+ }
1038
+
1039
+ .eth-project-app-domain-panel__domain {
1040
+ display: grid;
1041
+ gap: var(--eth-space-2xs);
1042
+ min-inline-size: 0;
1043
+ }
1044
+
1045
+ .eth-project-app-domain-panel__domain strong,
1046
+ .eth-project-app-domain-panel__domain span {
1047
+ min-inline-size: 0;
1048
+ overflow: hidden;
1049
+ text-overflow: ellipsis;
1050
+ white-space: nowrap;
1051
+ }
1052
+
1053
+ .eth-project-app-domain-panel__domain strong {
1054
+ color: var(--eth-color-text-primary);
1055
+ font-weight: 600;
1056
+ }
1057
+
1058
+ .eth-project-app-domain-panel__domain span {
1059
+ color: var(--eth-color-text-secondary);
1060
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1061
+ line-height: 1.3333;
1062
+ }
1063
+
1064
+ .eth-project-app-domain-panel .eth-data-table__actions {
1065
+ gap: var(--eth-space-xs);
1066
+ }
1067
+
1068
+ .eth-project-members-panel {
1069
+ background: var(--eth-color-layer-01);
1070
+ border: 1px solid var(--eth-color-border-subtle);
1071
+ color: var(--eth-color-text-primary);
1072
+ display: grid;
1073
+ gap: var(--eth-space-lg);
1074
+ inline-size: 100%;
1075
+ min-inline-size: 0;
1076
+ padding: var(--eth-space-lg);
1077
+ }
1078
+
1079
+ .eth-project-members-panel:focus {
1080
+ outline: none;
1081
+ }
1082
+
1083
+ .eth-project-members-panel:focus-visible {
1084
+ outline: 2px solid var(--eth-color-focus);
1085
+ outline-offset: -2px;
1086
+ }
1087
+
1088
+ .eth-project-members-panel__header {
1089
+ align-items: flex-start;
1090
+ display: flex;
1091
+ gap: var(--eth-space-lg);
1092
+ justify-content: space-between;
1093
+ min-inline-size: 0;
1094
+ }
1095
+
1096
+ .eth-project-members-panel__heading {
1097
+ display: grid;
1098
+ gap: var(--eth-space-md);
1099
+ min-inline-size: 0;
1100
+ }
1101
+
1102
+ .eth-project-members-panel__heading h3 {
1103
+ color: var(--eth-color-text-primary);
1104
+ font-size: calc(1rem * var(--eth-text-scale, 1));
1105
+ font-weight: 600;
1106
+ line-height: 1.375;
1107
+ margin: 0;
1108
+ }
1109
+
1110
+ .eth-project-resource-panel {
1111
+ background: var(--eth-color-layer-01);
1112
+ border: 1px solid var(--eth-color-border-subtle);
1113
+ color: var(--eth-color-text-primary);
1114
+ display: grid;
1115
+ gap: var(--eth-space-lg);
1116
+ inline-size: 100%;
1117
+ min-inline-size: 0;
1118
+ padding: var(--eth-space-lg);
1119
+ }
1120
+
1121
+ .eth-project-resource-panel:focus {
1122
+ outline: none;
1123
+ }
1124
+
1125
+ .eth-project-resource-panel:focus-visible {
1126
+ outline: 2px solid var(--eth-color-focus);
1127
+ outline-offset: -2px;
1128
+ }
1129
+
1130
+ .eth-project-resource-panel__header {
1131
+ align-items: flex-start;
1132
+ display: flex;
1133
+ gap: var(--eth-space-lg);
1134
+ justify-content: space-between;
1135
+ min-inline-size: 0;
1136
+ }
1137
+
1138
+ .eth-project-resource-panel__header h3 {
1139
+ color: var(--eth-color-text-primary);
1140
+ font-size: calc(1rem * var(--eth-text-scale, 1));
1141
+ font-weight: 600;
1142
+ line-height: 1.375;
1143
+ margin: 0;
1144
+ }
1145
+
1146
+ .eth-project-resource-panel__summary {
1147
+ border: 1px solid var(--eth-color-border-subtle);
1148
+ display: grid;
1149
+ flex: 0 0 auto;
1150
+ grid-template-columns: repeat(3, minmax(4.75rem, 1fr));
1151
+ margin: 0;
1152
+ }
1153
+
1154
+ .eth-project-resource-panel__summary div {
1155
+ background: var(--eth-color-layer-02);
1156
+ display: grid;
1157
+ gap: var(--eth-space-2xs);
1158
+ min-inline-size: 0;
1159
+ padding: var(--eth-space-sm) var(--eth-space-md);
1160
+ }
1161
+
1162
+ .eth-project-resource-panel__summary div + div {
1163
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
1164
+ }
1165
+
1166
+ .eth-project-resource-panel__summary dt,
1167
+ .eth-project-resource-panel__summary dd {
1168
+ margin: 0;
1169
+ }
1170
+
1171
+ .eth-project-resource-panel__summary dt {
1172
+ color: var(--eth-color-text-secondary);
1173
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1174
+ line-height: 1.3333;
1175
+ }
1176
+
1177
+ .eth-project-resource-panel__summary dd {
1178
+ color: var(--eth-color-text-primary);
1179
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1180
+ font-variant-numeric: tabular-nums;
1181
+ font-weight: 600;
1182
+ line-height: 1.2857;
1183
+ }
1184
+
1185
+ .eth-project-resource-panel .eth-data-table-wrap {
1186
+ border-color: var(--eth-color-border-subtle);
1187
+ }
1188
+
1189
+ .eth-project-resource-panel__table {
1190
+ min-inline-size: 44rem;
1191
+ table-layout: fixed;
1192
+ }
1193
+
1194
+ .eth-project-resource-panel__resource {
1195
+ align-items: center;
1196
+ display: grid;
1197
+ gap: var(--eth-space-md);
1198
+ grid-template-columns: 2rem minmax(0, 1fr);
1199
+ min-inline-size: 0;
1200
+ }
1201
+
1202
+ .eth-project-resource-panel__resource-icon {
1203
+ align-items: center;
1204
+ background: var(--eth-color-layer-02);
1205
+ border: 1px solid var(--eth-color-border-subtle);
1206
+ block-size: 2rem;
1207
+ color: var(--eth-color-text-secondary);
1208
+ display: inline-flex;
1209
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1210
+ font-weight: 600;
1211
+ inline-size: 2rem;
1212
+ justify-content: center;
1213
+ line-height: 1;
1214
+ }
1215
+
1216
+ .eth-project-resource-panel__resource-copy {
1217
+ display: grid;
1218
+ gap: var(--eth-space-2xs);
1219
+ min-inline-size: 0;
1220
+ }
1221
+
1222
+ .eth-project-resource-panel__resource-copy strong,
1223
+ .eth-project-resource-panel__resource-copy span {
1224
+ min-inline-size: 0;
1225
+ overflow: hidden;
1226
+ text-overflow: ellipsis;
1227
+ white-space: nowrap;
1228
+ }
1229
+
1230
+ .eth-project-resource-panel__resource-copy strong {
1231
+ color: var(--eth-color-text-primary);
1232
+ font-weight: 600;
1233
+ }
1234
+
1235
+ .eth-project-resource-panel__resource-copy span,
1236
+ .eth-project-resource-panel__muted {
1237
+ color: var(--eth-color-text-secondary);
1238
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1239
+ line-height: 1.3333;
1240
+ }
1241
+
1242
+ .eth-project-resource-panel__updated {
1243
+ color: var(--eth-color-text-primary);
1244
+ font-variant-numeric: tabular-nums;
1245
+ white-space: nowrap;
1246
+ }
1247
+
1248
+ .eth-project-resource-panel .eth-data-table__actions {
1249
+ gap: var(--eth-space-xs);
1250
+ }
1251
+
1252
+ @media (max-width: 42rem) {
1253
+ .eth-project-resource-panel {
1254
+ padding: var(--eth-space-md);
1255
+ }
1256
+
1257
+ .eth-project-resource-panel__header {
1258
+ display: grid;
1259
+ }
1260
+
1261
+ .eth-project-resource-panel__summary {
1262
+ inline-size: 100%;
1263
+ }
1264
+ }
1265
+
1266
+ .eth-project-activity-timeline {
1267
+ color: var(--eth-color-text-primary);
1268
+ display: grid;
1269
+ gap: var(--eth-space-lg);
1270
+ inline-size: min(100%, 44rem);
1271
+ min-inline-size: 0;
1272
+ }
1273
+
1274
+ .eth-project-activity-timeline__header {
1275
+ border-block-end: 1px solid var(--eth-color-border-subtle);
1276
+ padding-block-end: var(--eth-space-sm);
1277
+ }
1278
+
1279
+ .eth-project-activity-timeline__header h3 {
1280
+ font-size: calc(1rem * var(--eth-text-scale, 1));
1281
+ font-weight: 600;
1282
+ line-height: 1.375;
1283
+ margin: 0;
1284
+ }
1285
+
1286
+ .eth-project-activity-timeline__list {
1287
+ display: grid;
1288
+ gap: 0;
1289
+ list-style: none;
1290
+ margin: 0;
1291
+ min-inline-size: 0;
1292
+ padding: 0;
1293
+ }
1294
+
1295
+ .eth-project-activity-timeline__item {
1296
+ --eth-project-activity-accent: var(--eth-color-interactive-primary);
1297
+
1298
+ display: grid;
1299
+ gap: 0 var(--eth-space-md);
1300
+ grid-template-columns: minmax(3.75rem, max-content) 1rem minmax(0, 1fr);
1301
+ min-inline-size: 0;
1302
+ }
1303
+
1304
+ .eth-project-activity-timeline__item--success {
1305
+ --eth-project-activity-accent: var(--eth-color-success);
1306
+ }
1307
+
1308
+ .eth-project-activity-timeline__item--warning {
1309
+ --eth-project-activity-accent: var(--eth-color-warning);
1310
+ }
1311
+
1312
+ .eth-project-activity-timeline__item--danger {
1313
+ --eth-project-activity-accent: var(--eth-color-danger);
1314
+ }
1315
+
1316
+ .eth-project-activity-timeline__item--neutral {
1317
+ --eth-project-activity-accent: var(--eth-color-border-strong);
1318
+ }
1319
+
1320
+ .eth-project-activity-timeline__time {
1321
+ color: var(--eth-color-text-secondary);
1322
+ font-family: var(--eth-font-mono);
1323
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1324
+ font-variant-numeric: tabular-nums;
1325
+ justify-self: end;
1326
+ line-height: 1.3333;
1327
+ padding-block-start: var(--eth-space-2xs);
1328
+ white-space: nowrap;
1329
+ }
1330
+
1331
+ .eth-project-activity-timeline__rail {
1332
+ display: flex;
1333
+ justify-content: center;
1334
+ min-block-size: 100%;
1335
+ position: relative;
1336
+ }
1337
+
1338
+ .eth-project-activity-timeline__rail::after {
1339
+ background: var(--eth-color-border-subtle);
1340
+ block-size: calc(100% - var(--eth-space-xs));
1341
+ content: "";
1342
+ inline-size: 1px;
1343
+ inset-block-start: 0.875rem;
1344
+ inset-inline-start: calc(50% - 0.5px);
1345
+ position: absolute;
1346
+ }
1347
+
1348
+ .eth-project-activity-timeline__item:last-child .eth-project-activity-timeline__rail::after {
1349
+ display: none;
1350
+ }
1351
+
1352
+ .eth-project-activity-timeline__marker {
1353
+ background: var(--eth-project-activity-accent);
1354
+ block-size: 0.625rem;
1355
+ border: 2px solid var(--eth-color-layer-01);
1356
+ border-radius: 50%;
1357
+ box-shadow: 0 0 0 1px var(--eth-project-activity-accent);
1358
+ inline-size: 0.625rem;
1359
+ margin-block-start: var(--eth-space-xs);
1360
+ position: relative;
1361
+ z-index: 1;
1362
+ }
1363
+
1364
+ .eth-project-activity-timeline__event {
1365
+ border-block-end: 1px solid var(--eth-color-border-subtle);
1366
+ display: grid;
1367
+ gap: var(--eth-space-xs);
1368
+ min-inline-size: 0;
1369
+ padding-block-end: var(--eth-space-lg);
1370
+ }
1371
+
1372
+ .eth-project-activity-timeline__item + .eth-project-activity-timeline__item
1373
+ .eth-project-activity-timeline__time,
1374
+ .eth-project-activity-timeline__item + .eth-project-activity-timeline__item
1375
+ .eth-project-activity-timeline__rail,
1376
+ .eth-project-activity-timeline__item + .eth-project-activity-timeline__item
1377
+ .eth-project-activity-timeline__event {
1378
+ padding-block-start: var(--eth-space-lg);
1379
+ }
1380
+
1381
+ .eth-project-activity-timeline__item:last-child .eth-project-activity-timeline__event {
1382
+ border-block-end: 0;
1383
+ padding-block-end: 0;
1384
+ }
1385
+
1386
+ .eth-project-activity-timeline__event-header {
1387
+ align-items: center;
1388
+ display: flex;
1389
+ flex-wrap: wrap;
1390
+ gap: var(--eth-space-sm);
1391
+ min-inline-size: 0;
1392
+ }
1393
+
1394
+ .eth-project-activity-timeline__actor {
1395
+ color: var(--eth-color-text-secondary);
1396
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1397
+ line-height: 1.3333;
1398
+ min-inline-size: 0;
1399
+ overflow-wrap: anywhere;
1400
+ }
1401
+
1402
+ .eth-project-activity-timeline__summary {
1403
+ color: var(--eth-color-text-primary);
1404
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1405
+ font-weight: 600;
1406
+ line-height: 1.4286;
1407
+ min-inline-size: 0;
1408
+ overflow-wrap: anywhere;
1409
+ }
1410
+
1411
+ .eth-project-activity-timeline__details {
1412
+ color: var(--eth-color-text-secondary);
1413
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1414
+ line-height: 1.4286;
1415
+ margin: 0;
1416
+ min-inline-size: 0;
1417
+ overflow-wrap: anywhere;
1418
+ }
1419
+
1420
+ .eth-project-create-form {
1421
+ background: var(--eth-color-layer-01);
1422
+ border: 1px solid var(--eth-color-border-subtle);
1423
+ color: var(--eth-color-text-primary);
1424
+ display: grid;
1425
+ inline-size: min(100%, 54rem);
1426
+ margin: 0;
1427
+ min-inline-size: 0;
1428
+ }
1429
+
1430
+ .eth-project-create-form__header {
1431
+ background: var(--eth-color-layer-02);
1432
+ border-block-end: 1px solid var(--eth-color-border-subtle);
1433
+ display: grid;
1434
+ gap: var(--eth-space-sm);
1435
+ padding: var(--eth-space-xl);
1436
+ }
1437
+
1438
+ .eth-project-create-form__title {
1439
+ font-size: calc(1.25rem * var(--eth-text-scale, 1));
1440
+ font-weight: 400;
1441
+ line-height: 1.4;
1442
+ margin: 0;
1443
+ }
1444
+
1445
+ .eth-project-create-form__description {
1446
+ color: var(--eth-color-text-secondary);
1447
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1448
+ line-height: 1.4286;
1449
+ margin: 0;
1450
+ max-inline-size: 42rem;
1451
+ }
1452
+
1453
+ .eth-project-create-form__validation {
1454
+ margin: var(--eth-space-lg) var(--eth-space-xl) 0;
1455
+ }
1456
+
1457
+ .eth-project-create-form__section.eth-form-section {
1458
+ border-block-start: 0;
1459
+ padding: var(--eth-space-xl);
1460
+ }
1461
+
1462
+ .eth-project-create-form__section + .eth-project-create-form__section {
1463
+ border-block-start: 1px solid var(--eth-color-border-subtle);
1464
+ }
1465
+
1466
+ .eth-project-create-form__grid {
1467
+ align-items: start;
1468
+ column-gap: var(--eth-space-xl);
1469
+ display: grid;
1470
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1471
+ min-inline-size: 0;
1472
+ row-gap: var(--eth-space-lg);
1473
+ }
1474
+
1475
+ .eth-project-create-form__grid--setup {
1476
+ grid-template-columns: minmax(14rem, 24rem);
1477
+ }
1478
+
1479
+ .eth-project-create-form__field,
1480
+ .eth-project-create-form__field .cds--text-input-wrapper,
1481
+ .eth-project-create-form__field .cds--select,
1482
+ .eth-project-create-form__field .cds--select-input,
1483
+ .eth-project-create-form__field .cds--text-input,
1484
+ .eth-project-create-form__field .cds--text-area__wrapper,
1485
+ .eth-project-create-form__field .cds--text-area {
1486
+ inline-size: 100%;
1487
+ min-inline-size: 0;
1488
+ }
1489
+
1490
+ .eth-project-create-form__field--wide {
1491
+ grid-column: 1 / -1;
1492
+ }
1493
+
1494
+ .eth-project-create-form__field .cds--text-area {
1495
+ min-block-size: 7rem;
1496
+ resize: vertical;
1497
+ }
1498
+
1499
+ .eth-project-create-form__actions {
1500
+ align-items: center;
1501
+ background: var(--eth-color-layer-02);
1502
+ border-block-start: 1px solid var(--eth-color-border-subtle);
1503
+ display: flex;
1504
+ flex-wrap: wrap;
1505
+ gap: var(--eth-space-sm);
1506
+ justify-content: flex-end;
1507
+ padding: var(--eth-space-lg) var(--eth-space-xl);
1508
+ }
1509
+
1510
+ .eth-project-create-form__actions .eth-button {
1511
+ min-inline-size: 8.5rem;
1512
+ }
1513
+
1514
+ @media (width <= 72rem) {
1515
+ .eth-project-status-summary__kpis {
1516
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1517
+ }
1518
+ }
1519
+
1520
+ @media (width <= 48rem) {
1521
+ .eth-project-management-page {
1522
+ gap: var(--eth-space-md);
1523
+ }
1524
+
1525
+ .eth-project-management-page__filters,
1526
+ .eth-project-status-summary,
1527
+ .eth-project-table {
1528
+ padding-inline: var(--eth-space-lg);
1529
+ }
1530
+
1531
+ .eth-project-status-summary__kpis {
1532
+ grid-template-columns: minmax(0, 1fr);
1533
+ }
1534
+
1535
+ .eth-project-card {
1536
+ inline-size: 100%;
1537
+ }
1538
+
1539
+ .eth-project-card__header {
1540
+ grid-template-columns: 1fr;
1541
+ }
1542
+
1543
+ .eth-project-card__status {
1544
+ justify-self: start;
1545
+ }
1546
+
1547
+ .eth-project-card__metadata {
1548
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1549
+ }
1550
+
1551
+ .eth-project-card__metadata div {
1552
+ border-block-end: 1px solid var(--eth-project-card-border);
1553
+ }
1554
+
1555
+ .eth-project-card__metadata div:nth-child(2n) {
1556
+ border-inline-end: 0;
1557
+ }
1558
+
1559
+ .eth-project-card__metadata div:last-child {
1560
+ border-block-end: 0;
1561
+ grid-column: 1 / -1;
1562
+ }
1563
+
1564
+ .eth-project-card__actions,
1565
+ .eth-project-card__actions .eth-actions {
1566
+ justify-content: stretch;
1567
+ }
1568
+
1569
+ .eth-project-card__actions .eth-button {
1570
+ flex: 1 1 10rem;
1571
+ }
1572
+ }
1573
+
1574
+ .eth-project-members-panel__summary {
1575
+ border: 1px solid var(--eth-color-border-subtle);
1576
+ display: grid;
1577
+ grid-template-columns: repeat(3, minmax(5.5rem, 1fr));
1578
+ margin: 0;
1579
+ max-inline-size: 22rem;
1580
+ }
1581
+
1582
+ .eth-project-members-panel__summary div {
1583
+ background: var(--eth-color-layer-02);
1584
+ display: grid;
1585
+ gap: var(--eth-space-2xs);
1586
+ min-inline-size: 0;
1587
+ padding: var(--eth-space-sm) var(--eth-space-md);
1588
+ }
1589
+
1590
+ .eth-project-members-panel__summary div + div {
1591
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
1592
+ }
1593
+
1594
+ .eth-project-members-panel__summary dt,
1595
+ .eth-project-members-panel__summary dd {
1596
+ margin: 0;
1597
+ }
1598
+
1599
+ .eth-project-members-panel__summary dt {
1600
+ color: var(--eth-color-text-secondary);
1601
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1602
+ line-height: 1.3333;
1603
+ }
1604
+
1605
+ .eth-project-members-panel__summary dd {
1606
+ color: var(--eth-color-text-primary);
1607
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1608
+ font-variant-numeric: tabular-nums;
1609
+ font-weight: 600;
1610
+ line-height: 1.2857;
1611
+ }
1612
+
1613
+ .eth-project-members-panel .eth-data-table-wrap {
1614
+ border-color: var(--eth-color-border-subtle);
1615
+ }
1616
+
1617
+ .eth-project-members-panel__table {
1618
+ min-inline-size: 42rem;
1619
+ table-layout: fixed;
1620
+ }
1621
+
1622
+ .eth-project-members-panel__member {
1623
+ align-items: center;
1624
+ display: flex;
1625
+ gap: var(--eth-space-md);
1626
+ min-inline-size: 0;
1627
+ }
1628
+
1629
+ .eth-project-members-panel__member strong {
1630
+ color: var(--eth-color-text-primary);
1631
+ font-weight: 600;
1632
+ min-inline-size: 0;
1633
+ overflow: hidden;
1634
+ text-overflow: ellipsis;
1635
+ white-space: nowrap;
1636
+ }
1637
+
1638
+ .eth-project-members-panel__avatar {
1639
+ align-items: center;
1640
+ background: var(--eth-color-layer-selected);
1641
+ block-size: 2rem;
1642
+ border: 1px solid var(--eth-color-border-subtle);
1643
+ color: var(--eth-color-text-primary);
1644
+ display: inline-flex;
1645
+ flex: 0 0 auto;
1646
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1647
+ font-weight: 600;
1648
+ inline-size: 2rem;
1649
+ justify-content: center;
1650
+ line-height: 1;
1651
+ object-fit: cover;
1652
+ }
1653
+
1654
+ .eth-project-members-panel__role-select {
1655
+ inline-size: min(100%, 10rem);
1656
+ }
1657
+
1658
+ .eth-project-members-panel__role-select .cds--select,
1659
+ .eth-project-members-panel__role-select .cds--select-input {
1660
+ inline-size: 100%;
1661
+ }
1662
+
1663
+ .eth-project-members-panel__role-badge {
1664
+ align-items: center;
1665
+ background: var(--eth-color-layer-02);
1666
+ border: 1px solid var(--eth-color-border-subtle);
1667
+ color: var(--eth-color-text-secondary);
1668
+ display: inline-flex;
1669
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1670
+ font-weight: 600;
1671
+ min-block-size: 1.5rem;
1672
+ max-inline-size: 100%;
1673
+ padding: 0 var(--eth-space-sm);
1674
+ }
1675
+
1676
+ .eth-project-members-panel__role-badge,
1677
+ .eth-project-members-panel .eth-status-dot {
1678
+ overflow: hidden;
1679
+ text-overflow: ellipsis;
1680
+ white-space: nowrap;
1681
+ }
1682
+
1683
+ .eth-project-members-panel .eth-data-table__actions {
1684
+ gap: var(--eth-space-xs);
1685
+ }
1686
+
1687
+ @media (max-width: 42rem) {
1688
+ .eth-project-app-domain-panel {
1689
+ padding: var(--eth-space-md);
1690
+ }
1691
+
1692
+ .eth-project-app-domain-panel__header {
1693
+ display: grid;
1694
+ }
1695
+
1696
+ .eth-project-app-domain-panel__summary {
1697
+ inline-size: 100%;
1698
+ }
1699
+
1700
+ .eth-project-members-panel {
1701
+ padding: var(--eth-space-md);
1702
+ }
1703
+
1704
+ .eth-project-members-panel__header {
1705
+ display: grid;
1706
+ }
1707
+
1708
+ .eth-project-members-panel__summary {
1709
+ inline-size: 100%;
1710
+ max-inline-size: none;
1711
+ }
1712
+
1713
+ .eth-project-create-form__header,
1714
+ .eth-project-create-form__section.eth-form-section,
1715
+ .eth-project-create-form__actions {
1716
+ padding-inline: var(--eth-space-lg);
1717
+ }
1718
+
1719
+ .eth-project-create-form__grid,
1720
+ .eth-project-create-form__grid--setup {
1721
+ grid-template-columns: minmax(0, 1fr);
1722
+ }
1723
+
1724
+ .eth-project-create-form__actions {
1725
+ align-items: stretch;
1726
+ flex-direction: column-reverse;
1727
+ }
1728
+
1729
+ .eth-project-create-form__actions .eth-button {
1730
+ inline-size: 100%;
1731
+ }
1732
+ }
1733
+
1734
+ @media (max-width: 480px) {
1735
+ .eth-project-activity-timeline__item {
1736
+ grid-template-columns: 1rem minmax(0, 1fr);
1737
+ }
1738
+
1739
+ .eth-project-activity-timeline__time {
1740
+ grid-column: 2;
1741
+ justify-self: start;
1742
+ }
1743
+
1744
+ .eth-project-activity-timeline__rail {
1745
+ grid-column: 1;
1746
+ grid-row: 1 / span 2;
1747
+ }
1748
+
1749
+ .eth-project-activity-timeline__event {
1750
+ grid-column: 2;
1751
+ }
1752
+ }
1753
+
1754
+ .eth-project-settings-panel {
1755
+ background: var(--eth-color-layer-01);
1756
+ border: 1px solid var(--eth-color-border-subtle);
1757
+ color: var(--eth-color-text-primary);
1758
+ display: grid;
1759
+ inline-size: min(100%, 64rem);
1760
+ min-inline-size: 0;
1761
+ }
1762
+
1763
+ .eth-project-settings-panel:focus {
1764
+ outline: none;
1765
+ }
1766
+
1767
+ .eth-project-settings-panel:focus-visible {
1768
+ outline: 2px solid var(--eth-color-focus);
1769
+ outline-offset: -2px;
1770
+ }
1771
+
1772
+ .eth-project-settings-panel__header {
1773
+ align-items: start;
1774
+ border-block-end: 1px solid var(--eth-color-border-subtle);
1775
+ display: grid;
1776
+ gap: var(--eth-space-xl);
1777
+ grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
1778
+ min-inline-size: 0;
1779
+ padding: var(--eth-space-xl);
1780
+ }
1781
+
1782
+ .eth-project-settings-panel__heading {
1783
+ display: grid;
1784
+ gap: var(--eth-space-sm);
1785
+ min-inline-size: 0;
1786
+ }
1787
+
1788
+ .eth-project-settings-panel__eyebrow {
1789
+ color: var(--eth-color-text-secondary);
1790
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1791
+ letter-spacing: 0.04em;
1792
+ line-height: 1.3333;
1793
+ margin: 0;
1794
+ text-transform: uppercase;
1795
+ }
1796
+
1797
+ .eth-project-settings-panel__heading h2 {
1798
+ color: var(--eth-color-text-primary);
1799
+ font-size: calc(1.75rem * var(--eth-text-scale, 1));
1800
+ font-weight: 400;
1801
+ line-height: 1.2857;
1802
+ margin: 0;
1803
+ }
1804
+
1805
+ .eth-project-settings-panel__heading p:not(.eth-project-settings-panel__eyebrow) {
1806
+ color: var(--eth-color-text-secondary);
1807
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1808
+ line-height: 1.4286;
1809
+ margin: 0;
1810
+ max-inline-size: 40rem;
1811
+ }
1812
+
1813
+ .eth-project-settings-panel__summary {
1814
+ border: 1px solid var(--eth-color-border-subtle);
1815
+ display: grid;
1816
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1817
+ margin: 0;
1818
+ min-inline-size: 0;
1819
+ }
1820
+
1821
+ .eth-project-settings-panel__summary div {
1822
+ background: var(--eth-color-layer-02);
1823
+ display: grid;
1824
+ gap: var(--eth-space-2xs);
1825
+ min-inline-size: 0;
1826
+ padding: var(--eth-space-sm) var(--eth-space-md);
1827
+ }
1828
+
1829
+ .eth-project-settings-panel__summary div + div {
1830
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
1831
+ }
1832
+
1833
+ .eth-project-settings-panel__summary dt,
1834
+ .eth-project-settings-panel__summary dd {
1835
+ margin: 0;
1836
+ min-inline-size: 0;
1837
+ }
1838
+
1839
+ .eth-project-settings-panel__summary dt {
1840
+ color: var(--eth-color-text-secondary);
1841
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1842
+ line-height: 1.3333;
1843
+ }
1844
+
1845
+ .eth-project-settings-panel__summary dd {
1846
+ color: var(--eth-color-text-primary);
1847
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1848
+ font-weight: 600;
1849
+ line-height: 1.2857;
1850
+ overflow: hidden;
1851
+ text-overflow: ellipsis;
1852
+ white-space: nowrap;
1853
+ }
1854
+
1855
+ .eth-project-settings-panel__content {
1856
+ display: grid;
1857
+ min-inline-size: 0;
1858
+ }
1859
+
1860
+ .eth-project-settings-panel .eth-form-section {
1861
+ border-block-start: 0;
1862
+ gap: var(--eth-space-2xl);
1863
+ grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr);
1864
+ padding: var(--eth-space-xl);
1865
+ }
1866
+
1867
+ .eth-project-settings-panel .eth-form-section + .eth-form-section {
1868
+ border-block-start: 1px solid var(--eth-color-border-subtle);
1869
+ }
1870
+
1871
+ .eth-project-settings-panel .eth-form-section__header {
1872
+ display: block;
1873
+ }
1874
+
1875
+ .eth-project-settings-panel .eth-form-section__body {
1876
+ gap: var(--eth-space-lg);
1877
+ }
1878
+
1879
+ .eth-project-settings-panel__stack,
1880
+ .eth-project-settings-panel__members {
1881
+ display: grid;
1882
+ gap: var(--eth-space-lg);
1883
+ max-inline-size: 36rem;
1884
+ min-inline-size: 0;
1885
+ }
1886
+
1887
+ .eth-project-settings-panel__field-grid {
1888
+ display: grid;
1889
+ gap: var(--eth-space-lg);
1890
+ grid-template-columns: repeat(2, minmax(12rem, 1fr));
1891
+ min-inline-size: 0;
1892
+ }
1893
+
1894
+ .eth-project-settings-panel .cds--text-input-wrapper,
1895
+ .eth-project-settings-panel .cds--select,
1896
+ .eth-project-settings-panel .cds--select-input,
1897
+ .eth-project-settings-panel .cds--text-input,
1898
+ .eth-project-settings-panel .cds--text-area__wrapper,
1899
+ .eth-project-settings-panel .cds--text-area {
1900
+ inline-size: 100%;
1901
+ }
1902
+
1903
+ .eth-project-settings-panel__member-meta {
1904
+ align-items: center;
1905
+ color: var(--eth-color-text-secondary);
1906
+ display: flex;
1907
+ flex-wrap: wrap;
1908
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1909
+ gap: var(--eth-space-sm);
1910
+ line-height: 1.3333;
1911
+ }
1912
+
1913
+ .eth-project-settings-panel__member-meta span + span::before {
1914
+ color: var(--eth-color-border-strong);
1915
+ content: "/";
1916
+ margin-inline-end: var(--eth-space-sm);
1917
+ }
1918
+
1919
+ .eth-project-settings-panel__member-list {
1920
+ border: 1px solid var(--eth-color-border-subtle);
1921
+ display: grid;
1922
+ min-inline-size: 0;
1923
+ }
1924
+
1925
+ .eth-project-settings-panel__member-row {
1926
+ align-items: center;
1927
+ background: var(--eth-color-layer-02);
1928
+ display: grid;
1929
+ gap: var(--eth-space-md);
1930
+ grid-template-columns: 2rem minmax(0, 1fr) minmax(9rem, 12rem);
1931
+ min-block-size: 3rem;
1932
+ min-inline-size: 0;
1933
+ padding: var(--eth-space-sm) var(--eth-space-md);
1934
+ }
1935
+
1936
+ .eth-project-settings-panel__member-row + .eth-project-settings-panel__member-row {
1937
+ border-block-start: 1px solid var(--eth-color-border-subtle);
1938
+ }
1939
+
1940
+ .eth-project-settings-panel__member-avatar {
1941
+ align-items: center;
1942
+ background: var(--eth-color-layer-selected);
1943
+ color: var(--eth-color-text-primary);
1944
+ display: inline-flex;
1945
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1946
+ font-weight: 600;
1947
+ block-size: 2rem;
1948
+ inline-size: 2rem;
1949
+ justify-content: center;
1950
+ line-height: 1;
1951
+ }
1952
+
1953
+ .eth-project-settings-panel__member-main {
1954
+ display: grid;
1955
+ gap: var(--eth-space-2xs);
1956
+ min-inline-size: 0;
1957
+ }
1958
+
1959
+ .eth-project-settings-panel__member-main strong,
1960
+ .eth-project-settings-panel__member-main span {
1961
+ min-inline-size: 0;
1962
+ overflow: hidden;
1963
+ text-overflow: ellipsis;
1964
+ white-space: nowrap;
1965
+ }
1966
+
1967
+ .eth-project-settings-panel__member-main strong {
1968
+ color: var(--eth-color-text-primary);
1969
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
1970
+ font-weight: 600;
1971
+ line-height: 1.4286;
1972
+ }
1973
+
1974
+ .eth-project-settings-panel__member-main span,
1975
+ .eth-project-settings-panel__empty {
1976
+ color: var(--eth-color-text-secondary);
1977
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
1978
+ line-height: 1.3333;
1979
+ }
1980
+
1981
+ .eth-project-settings-panel__empty {
1982
+ background: var(--eth-color-layer-02);
1983
+ border: 1px solid var(--eth-color-border-subtle);
1984
+ margin: 0;
1985
+ padding: var(--eth-space-lg);
1986
+ }
1987
+
1988
+ @media (max-width: 58rem) {
1989
+ .eth-project-settings-panel {
1990
+ inline-size: 100%;
1991
+ }
1992
+
1993
+ .eth-project-settings-panel__header,
1994
+ .eth-project-settings-panel .eth-form-section {
1995
+ grid-template-columns: 1fr;
1996
+ }
1997
+
1998
+ .eth-project-settings-panel__summary {
1999
+ max-inline-size: 100%;
2000
+ }
2001
+ }
2002
+
2003
+ @media (max-width: 38rem) {
2004
+ .eth-project-settings-panel__header,
2005
+ .eth-project-settings-panel .eth-form-section {
2006
+ padding: var(--eth-space-lg);
2007
+ }
2008
+
2009
+ .eth-project-settings-panel__summary,
2010
+ .eth-project-settings-panel__field-grid,
2011
+ .eth-project-settings-panel__member-row {
2012
+ grid-template-columns: 1fr;
2013
+ }
2014
+
2015
+ .eth-project-settings-panel__summary div + div,
2016
+ .eth-project-settings-panel__member-row + .eth-project-settings-panel__member-row {
2017
+ border-block-start: 1px solid var(--eth-color-border-subtle);
2018
+ border-inline-start: 0;
2019
+ }
2020
+
2021
+ .eth-project-settings-panel__member-avatar {
2022
+ display: none;
2023
+ }
2024
+ }
2025
+
2026
+ .eth-project-model-config-panel {
2027
+ background: var(--eth-color-layer-01);
2028
+ border: 1px solid var(--eth-color-border-subtle);
2029
+ color: var(--eth-color-text-primary);
2030
+ display: grid;
2031
+ gap: 0;
2032
+ inline-size: min(100%, 64rem);
2033
+ min-inline-size: 0;
2034
+ }
2035
+
2036
+ .eth-project-model-config-panel:focus {
2037
+ outline: none;
2038
+ }
2039
+
2040
+ .eth-project-model-config-panel:focus-visible {
2041
+ outline: 2px solid var(--eth-color-focus);
2042
+ outline-offset: -2px;
2043
+ }
2044
+
2045
+ .eth-project-model-config-panel__header {
2046
+ align-items: start;
2047
+ background: var(--eth-color-layer-02);
2048
+ border-block-end: 1px solid var(--eth-color-border-subtle);
2049
+ column-gap: var(--eth-space-xl);
2050
+ display: grid;
2051
+ grid-template-columns: minmax(0, 1fr) minmax(20rem, 28rem);
2052
+ min-inline-size: 0;
2053
+ padding: var(--eth-space-xl);
2054
+ row-gap: var(--eth-space-lg);
2055
+ }
2056
+
2057
+ .eth-project-model-config-panel__heading {
2058
+ min-inline-size: 0;
2059
+ }
2060
+
2061
+ .eth-project-model-config-panel__heading h3,
2062
+ .eth-project-model-config-panel__parameter-copy h4 {
2063
+ color: var(--eth-color-text-primary);
2064
+ margin: 0;
2065
+ }
2066
+
2067
+ .eth-project-model-config-panel__heading h3 {
2068
+ font-size: calc(1rem * var(--eth-text-scale, 1));
2069
+ font-weight: 600;
2070
+ line-height: 1.375;
2071
+ }
2072
+
2073
+ .eth-project-model-config-panel__heading p,
2074
+ .eth-project-model-config-panel__parameter-copy p {
2075
+ color: var(--eth-color-text-secondary);
2076
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2077
+ line-height: 1.4286;
2078
+ margin: var(--eth-space-xs) 0 0;
2079
+ }
2080
+
2081
+ .eth-project-model-config-panel__heading p {
2082
+ max-inline-size: 42rem;
2083
+ }
2084
+
2085
+ .eth-project-model-config-panel__summary {
2086
+ border: 1px solid var(--eth-color-border-subtle);
2087
+ display: grid;
2088
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2089
+ margin: 0;
2090
+ min-inline-size: 0;
2091
+ }
2092
+
2093
+ .eth-project-model-config-panel__summary div {
2094
+ background: var(--eth-color-layer-01);
2095
+ display: grid;
2096
+ gap: var(--eth-space-2xs);
2097
+ min-inline-size: 0;
2098
+ padding: var(--eth-space-sm) var(--eth-space-md);
2099
+ }
2100
+
2101
+ .eth-project-model-config-panel__summary div + div {
2102
+ border-inline-start: 1px solid var(--eth-color-border-subtle);
2103
+ }
2104
+
2105
+ .eth-project-model-config-panel__summary dt,
2106
+ .eth-project-model-config-panel__summary dd,
2107
+ .eth-project-model-config-panel__parameter-meta dt,
2108
+ .eth-project-model-config-panel__parameter-meta dd {
2109
+ margin: 0;
2110
+ }
2111
+
2112
+ .eth-project-model-config-panel__summary dt,
2113
+ .eth-project-model-config-panel__parameter-meta dt {
2114
+ color: var(--eth-color-text-secondary);
2115
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
2116
+ line-height: 1.3333;
2117
+ }
2118
+
2119
+ .eth-project-model-config-panel__summary dd,
2120
+ .eth-project-model-config-panel__parameter-meta dd {
2121
+ color: var(--eth-color-text-primary);
2122
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2123
+ font-variant-numeric: tabular-nums;
2124
+ font-weight: 600;
2125
+ line-height: 1.2857;
2126
+ min-inline-size: 0;
2127
+ overflow: hidden;
2128
+ text-overflow: ellipsis;
2129
+ white-space: nowrap;
2130
+ }
2131
+
2132
+ .eth-project-model-config-panel__selectors {
2133
+ column-gap: var(--eth-space-lg);
2134
+ display: grid;
2135
+ grid-template-columns: repeat(2, minmax(14rem, 1fr));
2136
+ min-inline-size: 0;
2137
+ padding: var(--eth-space-xl);
2138
+ row-gap: var(--eth-space-lg);
2139
+ }
2140
+
2141
+ .eth-project-model-config-panel__selectors .eth-form-field,
2142
+ .eth-project-model-config-panel__selectors .cds--select,
2143
+ .eth-project-model-config-panel__selectors .cds--select-input {
2144
+ inline-size: 100%;
2145
+ }
2146
+
2147
+ .eth-project-model-config-panel__parameters {
2148
+ border-block-start: 1px solid var(--eth-color-border-subtle);
2149
+ display: grid;
2150
+ min-inline-size: 0;
2151
+ }
2152
+
2153
+ .eth-project-model-config-panel__parameter {
2154
+ align-items: center;
2155
+ border-block-end: 1px solid var(--eth-color-border-subtle);
2156
+ column-gap: var(--eth-space-2xl);
2157
+ display: grid;
2158
+ grid-template-columns: minmax(14rem, 20rem) minmax(20rem, 1fr);
2159
+ min-inline-size: 0;
2160
+ padding: var(--eth-space-xl);
2161
+ row-gap: var(--eth-space-lg);
2162
+ }
2163
+
2164
+ .eth-project-model-config-panel__parameter:last-child {
2165
+ border-block-end: 0;
2166
+ }
2167
+
2168
+ .eth-project-model-config-panel__parameter-copy,
2169
+ .eth-project-model-config-panel__parameter-control {
2170
+ min-inline-size: 0;
2171
+ }
2172
+
2173
+ .eth-project-model-config-panel__parameter-copy h4 {
2174
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2175
+ font-weight: 600;
2176
+ line-height: 1.2857;
2177
+ }
2178
+
2179
+ .eth-project-model-config-panel__parameter-copy p {
2180
+ max-inline-size: 28rem;
2181
+ }
2182
+
2183
+ .eth-project-model-config-panel__parameter-meta {
2184
+ column-gap: var(--eth-space-lg);
2185
+ display: flex;
2186
+ flex-wrap: wrap;
2187
+ margin: var(--eth-space-md) 0 0;
2188
+ row-gap: var(--eth-space-sm);
2189
+ }
2190
+
2191
+ .eth-project-model-config-panel__parameter-meta div {
2192
+ min-inline-size: 4.75rem;
2193
+ }
2194
+
2195
+ .eth-project-model-config-panel__parameter-control .cds--slider-container {
2196
+ inline-size: 100%;
2197
+ max-inline-size: none;
2198
+ }
2199
+
2200
+ .eth-project-model-config-panel__parameter-control .cds--slider {
2201
+ flex: 1 1 auto;
2202
+ max-inline-size: none;
2203
+ }
2204
+
2205
+ .eth-project-model-config-panel__parameter-control .cds--slider__range-label {
2206
+ color: var(--eth-color-text-secondary);
2207
+ }
2208
+
2209
+ .eth-project-model-config-panel__parameter-control .eth-number-input {
2210
+ inline-size: min(100%, 14rem);
2211
+ }
2212
+
2213
+ @media (max-width: 56rem) {
2214
+ .eth-project-model-config-panel__header,
2215
+ .eth-project-model-config-panel__parameter {
2216
+ grid-template-columns: 1fr;
2217
+ }
2218
+
2219
+ .eth-project-model-config-panel__summary {
2220
+ inline-size: 100%;
2221
+ }
2222
+ }
2223
+
2224
+ @media (max-width: 42rem) {
2225
+ .eth-project-model-config-panel__header,
2226
+ .eth-project-model-config-panel__selectors,
2227
+ .eth-project-model-config-panel__parameter {
2228
+ padding: var(--eth-space-lg);
2229
+ }
2230
+
2231
+ .eth-project-model-config-panel__selectors,
2232
+ .eth-project-model-config-panel__summary {
2233
+ grid-template-columns: 1fr;
2234
+ }
2235
+
2236
+ .eth-project-model-config-panel__summary div + div {
2237
+ border-block-start: 1px solid var(--eth-color-border-subtle);
2238
+ border-inline-start: 0;
2239
+ }
2240
+ }
2241
+
2242
+ .eth-project-permission-panel {
2243
+ --eth-project-permission-layer: var(--eth-color-layer-01);
2244
+ --eth-project-permission-layer-alt: var(--eth-color-layer-02);
2245
+ --eth-project-permission-layer-hover: var(--eth-color-layer-hover);
2246
+ --eth-project-permission-border: var(--eth-color-border-subtle);
2247
+ --eth-project-permission-text-secondary: var(--eth-color-text-secondary);
2248
+
2249
+ background: var(--eth-project-permission-layer);
2250
+ border: 1px solid var(--eth-project-permission-border);
2251
+ color: var(--eth-color-text-primary);
2252
+ display: grid;
2253
+ inline-size: 100%;
2254
+ max-inline-size: 64rem;
2255
+ min-inline-size: 0;
2256
+ overflow: hidden;
2257
+ }
2258
+
2259
+ .eth-project-permission-panel:focus {
2260
+ outline: none;
2261
+ }
2262
+
2263
+ .eth-project-permission-panel:focus-visible {
2264
+ outline: 2px solid var(--eth-color-focus);
2265
+ outline-offset: -2px;
2266
+ }
2267
+
2268
+ .eth-project-permission-panel__header {
2269
+ align-items: flex-start;
2270
+ border-block-end: 1px solid var(--eth-project-permission-border);
2271
+ display: flex;
2272
+ gap: var(--eth-space-lg);
2273
+ justify-content: space-between;
2274
+ min-inline-size: 0;
2275
+ padding: var(--eth-space-lg);
2276
+ }
2277
+
2278
+ .eth-project-permission-panel__heading {
2279
+ display: grid;
2280
+ gap: var(--eth-space-xs);
2281
+ min-inline-size: 0;
2282
+ }
2283
+
2284
+ .eth-project-permission-panel__heading h3,
2285
+ .eth-project-permission-panel__heading p,
2286
+ .eth-project-permission-panel__summary {
2287
+ margin: 0;
2288
+ }
2289
+
2290
+ .eth-project-permission-panel__heading h3 {
2291
+ color: var(--eth-color-text-primary);
2292
+ font-size: calc(1.25rem * var(--eth-text-scale, 1));
2293
+ font-weight: 400;
2294
+ line-height: 1.4;
2295
+ }
2296
+
2297
+ .eth-project-permission-panel__heading p {
2298
+ color: var(--eth-project-permission-text-secondary);
2299
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2300
+ line-height: 1.4286;
2301
+ }
2302
+
2303
+ .eth-project-permission-panel__summary {
2304
+ border: 1px solid var(--eth-project-permission-border);
2305
+ display: grid;
2306
+ flex: 0 0 20rem;
2307
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2308
+ }
2309
+
2310
+ .eth-project-permission-panel__summary div {
2311
+ display: grid;
2312
+ gap: var(--eth-space-2xs);
2313
+ min-inline-size: 0;
2314
+ padding: var(--eth-space-sm) var(--eth-space-md);
2315
+ }
2316
+
2317
+ .eth-project-permission-panel__summary div + div {
2318
+ border-inline-start: 1px solid var(--eth-project-permission-border);
2319
+ }
2320
+
2321
+ .eth-project-permission-panel__summary dt,
2322
+ .eth-project-permission-panel__summary dd {
2323
+ min-inline-size: 0;
2324
+ overflow: hidden;
2325
+ text-overflow: ellipsis;
2326
+ white-space: nowrap;
2327
+ }
2328
+
2329
+ .eth-project-permission-panel__summary dt {
2330
+ color: var(--eth-project-permission-text-secondary);
2331
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
2332
+ line-height: 1.3333;
2333
+ }
2334
+
2335
+ .eth-project-permission-panel__summary dd {
2336
+ color: var(--eth-color-text-primary);
2337
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2338
+ font-variant-numeric: tabular-nums;
2339
+ font-weight: 600;
2340
+ line-height: 1.2857;
2341
+ margin: 0;
2342
+ }
2343
+
2344
+ .eth-project-permission-panel .eth-data-table-wrap {
2345
+ border: 0;
2346
+ inline-size: 100%;
2347
+ min-inline-size: 0;
2348
+ overflow-x: auto;
2349
+ }
2350
+
2351
+ .eth-project-permission-panel .eth-data-table {
2352
+ background: var(--eth-project-permission-layer);
2353
+ min-inline-size: 42rem;
2354
+ table-layout: fixed;
2355
+ }
2356
+
2357
+ .eth-project-permission-panel .eth-data-table th,
2358
+ .eth-project-permission-panel .eth-data-table td {
2359
+ border-block-end: 1px solid var(--eth-project-permission-border);
2360
+ min-inline-size: 0;
2361
+ padding: var(--eth-space-sm) var(--eth-space-md);
2362
+ vertical-align: middle;
2363
+ }
2364
+
2365
+ .eth-project-permission-panel .eth-data-table th {
2366
+ background: var(--eth-project-permission-layer-alt);
2367
+ color: var(--eth-project-permission-text-secondary);
2368
+ font-size: calc(0.75rem * var(--eth-text-scale, 1));
2369
+ font-weight: 600;
2370
+ letter-spacing: 0;
2371
+ line-height: 1.3333;
2372
+ white-space: nowrap;
2373
+ }
2374
+
2375
+ .eth-project-permission-panel .eth-data-table td {
2376
+ color: var(--eth-color-text-primary);
2377
+ font-size: calc(0.875rem * var(--eth-text-scale, 1));
2378
+ line-height: 1.4286;
2379
+ }
2380
+
2381
+ .eth-project-permission-panel .eth-data-table tbody tr:hover {
2382
+ background: var(--eth-project-permission-layer-hover);
2383
+ }
2384
+
2385
+ .eth-project-permission-panel .eth-data-table tbody tr:last-child td {
2386
+ border-block-end: 0;
2387
+ }
2388
+
2389
+ .eth-project-permission-panel__subject {
2390
+ color: var(--eth-color-text-primary);
2391
+ font-weight: 600;
2392
+ }
2393
+
2394
+ .eth-project-permission-panel__resource {
2395
+ color: var(--eth-project-permission-text-secondary);
2396
+ }
2397
+
2398
+ .eth-project-permission-panel__state {
2399
+ margin: 0;
2400
+ }
2401
+
2402
+ .eth-project-permission-panel__toggle {
2403
+ align-items: center;
2404
+ display: inline-flex;
2405
+ justify-content: center;
2406
+ margin: 0;
2407
+ min-block-size: 2rem;
2408
+ min-inline-size: 2rem;
2409
+ }
2410
+
2411
+ .eth-project-permission-panel__toggle .cds--form-item,
2412
+ .eth-project-permission-panel__toggle .cds--checkbox-wrapper {
2413
+ align-items: center;
2414
+ display: inline-flex;
2415
+ margin: 0;
2416
+ }
2417
+
2418
+ .eth-project-permission-panel__empty {
2419
+ padding: var(--eth-space-lg);
2420
+ }
2421
+
2422
+ @media (max-width: 42rem) {
2423
+ .eth-project-permission-panel__header {
2424
+ display: grid;
2425
+ }
2426
+
2427
+ .eth-project-permission-panel__summary {
2428
+ flex-basis: auto;
2429
+ inline-size: 100%;
2430
+ }
2431
+ }