@hcgstudio/ogma 0.0.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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +155 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/defineOgmaReview.d.ts +3 -0
  8. package/dist/defineOgmaReview.d.ts.map +1 -0
  9. package/dist/defineOgmaReview.js +4 -0
  10. package/dist/defineOgmaReview.js.map +1 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +4 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/node/project.d.ts +18 -0
  16. package/dist/node/project.d.ts.map +1 -0
  17. package/dist/node/project.js +104 -0
  18. package/dist/node/project.js.map +1 -0
  19. package/dist/node/server.d.ts +21 -0
  20. package/dist/node/server.d.ts.map +1 -0
  21. package/dist/node/server.js +476 -0
  22. package/dist/node/server.js.map +1 -0
  23. package/dist/node/templates.d.ts +5 -0
  24. package/dist/node/templates.d.ts.map +1 -0
  25. package/dist/node/templates.js +145 -0
  26. package/dist/node/templates.js.map +1 -0
  27. package/dist/types.d.ts +100 -0
  28. package/dist/types.d.ts.map +1 -0
  29. package/dist/types.js +2 -0
  30. package/dist/types.js.map +1 -0
  31. package/dist/viewer/OgmaReviewApp.d.ts +7 -0
  32. package/dist/viewer/OgmaReviewApp.d.ts.map +1 -0
  33. package/dist/viewer/OgmaReviewApp.js +387 -0
  34. package/dist/viewer/OgmaReviewApp.js.map +1 -0
  35. package/dist/viewer/client.d.ts +2 -0
  36. package/dist/viewer/client.d.ts.map +1 -0
  37. package/dist/viewer/client.js +13 -0
  38. package/dist/viewer/client.js.map +1 -0
  39. package/dist/viewer/defaultReview.d.ts +4 -0
  40. package/dist/viewer/defaultReview.d.ts.map +1 -0
  41. package/dist/viewer/defaultReview.js +55 -0
  42. package/dist/viewer/defaultReview.js.map +1 -0
  43. package/dist/viewer/normalizeReviewModule.d.ts +3 -0
  44. package/dist/viewer/normalizeReviewModule.d.ts.map +1 -0
  45. package/dist/viewer/normalizeReviewModule.js +58 -0
  46. package/dist/viewer/normalizeReviewModule.js.map +1 -0
  47. package/package.json +47 -0
  48. package/src/cli.ts +194 -0
  49. package/src/defineOgmaReview.ts +5 -0
  50. package/src/index.ts +17 -0
  51. package/src/node/project.ts +143 -0
  52. package/src/node/server.ts +598 -0
  53. package/src/node/templates.ts +148 -0
  54. package/src/types.ts +111 -0
  55. package/src/viewer/OgmaReviewApp.tsx +1099 -0
  56. package/src/viewer/client.tsx +18 -0
  57. package/src/viewer/defaultReview.tsx +168 -0
  58. package/src/viewer/normalizeReviewModule.ts +87 -0
  59. package/src/viewer/styles.css +1140 -0
  60. package/src/viewer/virtual.d.ts +11 -0
@@ -0,0 +1,1140 @@
1
+ :root {
2
+ color-scheme: light;
3
+ font-family:
4
+ Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
5
+ font-synthesis: none;
6
+ text-rendering: optimizeLegibility;
7
+ --ogma-primary: #006a63;
8
+ --ogma-primary-strong: #004d48;
9
+ --ogma-on-primary: #ffffff;
10
+ --ogma-primary-soft: #bcece5;
11
+ --ogma-ink: #17201f;
12
+ --ogma-muted: #51605e;
13
+ --ogma-subtle: #74817f;
14
+ --ogma-line: #c4cfcc;
15
+ --ogma-line-soft: #dfe6e4;
16
+ --ogma-surface: #f6f8f7;
17
+ --ogma-panel: #ffffff;
18
+ --ogma-panel-low: #eef3f1;
19
+ --ogma-panel-high: #e4ebe8;
20
+ --ogma-blue: #255bb8;
21
+ --ogma-blue-soft: #d9e6ff;
22
+ --ogma-amber: #8a5a00;
23
+ --ogma-amber-soft: #ffe2a8;
24
+ --ogma-green: #2d6b3f;
25
+ --ogma-green-soft: #cfead5;
26
+ --ogma-red: #b42318;
27
+ --ogma-red-soft: #ffdad6;
28
+ --ogma-shadow: 0 1px 2px rgba(23, 32, 31, 0.08), 0 8px 32px rgba(23, 32, 31, 0.08);
29
+ --ogma-radius: 8px;
30
+ background: var(--ogma-surface);
31
+ color: var(--ogma-ink);
32
+ }
33
+
34
+ * {
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ body {
39
+ margin: 0;
40
+ min-width: 320px;
41
+ background: var(--ogma-surface);
42
+ }
43
+
44
+ button,
45
+ input,
46
+ select,
47
+ textarea {
48
+ color: inherit;
49
+ font: inherit;
50
+ }
51
+
52
+ button {
53
+ cursor: pointer;
54
+ }
55
+
56
+ .ogma-shell {
57
+ display: flex;
58
+ min-block-size: 100vh;
59
+ background: var(--ogma-surface);
60
+ }
61
+
62
+ .ogma-nav {
63
+ align-items: center;
64
+ background: var(--ogma-panel-high);
65
+ border-right: 1px solid var(--ogma-line);
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 22px;
69
+ inline-size: 96px;
70
+ padding: 18px 12px;
71
+ }
72
+
73
+ .ogma-mark {
74
+ align-items: center;
75
+ background: var(--ogma-primary);
76
+ border-radius: 8px;
77
+ color: var(--ogma-on-primary);
78
+ display: grid;
79
+ font-size: 22px;
80
+ font-weight: 780;
81
+ block-size: 48px;
82
+ inline-size: 48px;
83
+ letter-spacing: 0;
84
+ place-items: center;
85
+ }
86
+
87
+ .ogma-nav-list {
88
+ display: grid;
89
+ gap: 8px;
90
+ inline-size: 100%;
91
+ }
92
+
93
+ .ogma-nav-item {
94
+ align-items: center;
95
+ background: transparent;
96
+ border: 0;
97
+ border-radius: 8px;
98
+ display: grid;
99
+ gap: 5px;
100
+ min-block-size: 62px;
101
+ padding: 8px 6px;
102
+ place-items: center;
103
+ }
104
+
105
+ .ogma-nav-item span {
106
+ color: var(--ogma-muted);
107
+ font-size: 12px;
108
+ font-weight: 700;
109
+ letter-spacing: 0;
110
+ line-height: 1.2;
111
+ }
112
+
113
+ .ogma-nav-item.is-active {
114
+ background: var(--ogma-primary-soft);
115
+ color: var(--ogma-primary-strong);
116
+ }
117
+
118
+ .ogma-nav-item.is-active span {
119
+ color: var(--ogma-primary-strong);
120
+ }
121
+
122
+ .ogma-main {
123
+ display: flex;
124
+ flex: 1;
125
+ flex-direction: column;
126
+ min-inline-size: 0;
127
+ }
128
+
129
+ .ogma-topbar {
130
+ align-items: center;
131
+ display: flex;
132
+ gap: 20px;
133
+ justify-content: space-between;
134
+ min-block-size: 86px;
135
+ padding: 18px 28px 12px;
136
+ }
137
+
138
+ .ogma-topbar h1,
139
+ .ogma-section-heading h2 {
140
+ font-size: 28px;
141
+ font-weight: 760;
142
+ letter-spacing: 0;
143
+ line-height: 1.14;
144
+ margin: 0;
145
+ }
146
+
147
+ .ogma-eyebrow {
148
+ color: var(--ogma-primary);
149
+ font-size: 12px;
150
+ font-weight: 780;
151
+ letter-spacing: 0;
152
+ line-height: 1.35;
153
+ margin: 0 0 4px;
154
+ text-transform: uppercase;
155
+ }
156
+
157
+ .ogma-topbar-actions,
158
+ .ogma-inline-actions,
159
+ .ogma-tool-strip,
160
+ .ogma-editor-actions {
161
+ align-items: center;
162
+ display: flex;
163
+ flex-wrap: wrap;
164
+ gap: 9px;
165
+ }
166
+
167
+ .ogma-status-pill {
168
+ align-items: center;
169
+ background: var(--ogma-panel);
170
+ border: 1px solid var(--ogma-line-soft);
171
+ border-radius: 999px;
172
+ color: var(--ogma-muted);
173
+ display: flex;
174
+ font-size: 13px;
175
+ font-weight: 700;
176
+ gap: 8px;
177
+ min-block-size: 40px;
178
+ padding: 0 14px;
179
+ }
180
+
181
+ .ogma-status-pill.is-online svg {
182
+ color: var(--ogma-green);
183
+ }
184
+
185
+ .ogma-status-pill.is-offline svg {
186
+ color: var(--ogma-amber);
187
+ }
188
+
189
+ .ogma-a11y-pill {
190
+ align-items: center;
191
+ background: var(--ogma-amber-soft);
192
+ border-radius: 8px;
193
+ color: var(--ogma-amber);
194
+ display: inline-flex;
195
+ font-size: 12px;
196
+ font-weight: 780;
197
+ gap: 7px;
198
+ min-block-size: 40px;
199
+ padding: 0 11px;
200
+ }
201
+
202
+ .ogma-a11y-pill.is-clear {
203
+ background: var(--ogma-green-soft);
204
+ color: var(--ogma-green);
205
+ }
206
+
207
+ .ogma-a11y-pill strong {
208
+ font-size: 14px;
209
+ }
210
+
211
+ .ogma-filled-button,
212
+ .ogma-tonal-button,
213
+ .ogma-icon-button {
214
+ align-items: center;
215
+ border: 0;
216
+ display: inline-flex;
217
+ font-weight: 740;
218
+ justify-content: center;
219
+ letter-spacing: 0;
220
+ min-block-size: 40px;
221
+ transition:
222
+ background-color 150ms ease,
223
+ box-shadow 150ms ease,
224
+ transform 150ms ease;
225
+ }
226
+
227
+ .ogma-filled-button {
228
+ background: var(--ogma-primary);
229
+ border-radius: 8px;
230
+ color: var(--ogma-on-primary);
231
+ gap: 8px;
232
+ padding: 0 16px;
233
+ }
234
+
235
+ .ogma-tonal-button {
236
+ background: var(--ogma-blue-soft);
237
+ border-radius: 8px;
238
+ color: #123c82;
239
+ gap: 8px;
240
+ padding: 0 14px;
241
+ }
242
+
243
+ .ogma-icon-button {
244
+ background: var(--ogma-panel-high);
245
+ border-radius: 8px;
246
+ block-size: 40px;
247
+ color: var(--ogma-muted);
248
+ inline-size: 40px;
249
+ }
250
+
251
+ .ogma-icon-button.is-compact {
252
+ block-size: 34px;
253
+ inline-size: 34px;
254
+ }
255
+
256
+ .ogma-icon-button.is-active {
257
+ background: var(--ogma-primary-soft);
258
+ color: var(--ogma-primary-strong);
259
+ }
260
+
261
+ .ogma-filled-button:hover,
262
+ .ogma-tonal-button:hover,
263
+ .ogma-icon-button:hover,
264
+ .ogma-feedback-row:hover {
265
+ box-shadow: var(--ogma-shadow);
266
+ transform: translateY(-1px);
267
+ }
268
+
269
+ .ogma-workspace-grid {
270
+ display: grid;
271
+ flex: 1;
272
+ gap: 18px;
273
+ min-block-size: 0;
274
+ padding: 0 28px 28px;
275
+ }
276
+
277
+ .ogma-review-grid,
278
+ .ogma-setup-grid,
279
+ .ogma-handoff-grid,
280
+ .ogma-feedback-grid {
281
+ grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
282
+ }
283
+
284
+ .ogma-panel,
285
+ .ogma-canvas-panel,
286
+ .ogma-side-panel {
287
+ background: var(--ogma-panel);
288
+ border: 1px solid var(--ogma-line-soft);
289
+ border-radius: var(--ogma-radius);
290
+ box-shadow: var(--ogma-shadow);
291
+ min-inline-size: 0;
292
+ }
293
+
294
+ .ogma-panel,
295
+ .ogma-side-panel {
296
+ padding: 20px;
297
+ }
298
+
299
+ .ogma-section-heading,
300
+ .ogma-panel-title,
301
+ .ogma-agent-card-top,
302
+ .ogma-editor-topline {
303
+ align-items: center;
304
+ display: flex;
305
+ }
306
+
307
+ .ogma-section-heading {
308
+ gap: 16px;
309
+ justify-content: space-between;
310
+ margin-block-end: 18px;
311
+ }
312
+
313
+ .ogma-panel-title,
314
+ .ogma-agent-card-top {
315
+ gap: 10px;
316
+ margin-block-end: 16px;
317
+ }
318
+
319
+ .ogma-panel-title h3,
320
+ .ogma-agent-card h3 {
321
+ font-size: 17px;
322
+ font-weight: 760;
323
+ letter-spacing: 0;
324
+ line-height: 1.25;
325
+ margin: 0;
326
+ }
327
+
328
+ .ogma-command-stack,
329
+ .ogma-contract-list,
330
+ .ogma-summary-list {
331
+ display: grid;
332
+ gap: 11px;
333
+ }
334
+
335
+ .ogma-command-line {
336
+ align-items: center;
337
+ background: #111718;
338
+ border-radius: 8px;
339
+ color: #eef4f2;
340
+ display: grid;
341
+ gap: 10px;
342
+ grid-template-columns: auto minmax(0, 1fr) auto;
343
+ min-block-size: 50px;
344
+ padding: 0 14px;
345
+ }
346
+
347
+ .ogma-command-line code {
348
+ color: #bcece5;
349
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
350
+ font-size: 13px;
351
+ line-height: 1.35;
352
+ overflow-wrap: anywhere;
353
+ }
354
+
355
+ .ogma-runtime-list {
356
+ display: grid;
357
+ gap: 12px;
358
+ margin: 0;
359
+ }
360
+
361
+ .ogma-runtime-list div {
362
+ border-bottom: 1px solid var(--ogma-line-soft);
363
+ padding-block-end: 11px;
364
+ }
365
+
366
+ .ogma-runtime-list div:last-child {
367
+ border-bottom: 0;
368
+ padding-block-end: 0;
369
+ }
370
+
371
+ .ogma-runtime-list dt {
372
+ color: var(--ogma-muted);
373
+ font-size: 12px;
374
+ font-weight: 780;
375
+ margin-block-end: 4px;
376
+ text-transform: uppercase;
377
+ }
378
+
379
+ .ogma-runtime-list dd {
380
+ font-size: 14px;
381
+ font-weight: 650;
382
+ line-height: 1.35;
383
+ margin: 0;
384
+ overflow-wrap: anywhere;
385
+ }
386
+
387
+ .ogma-canvas-panel {
388
+ display: grid;
389
+ grid-template-rows: auto minmax(0, 1fr);
390
+ overflow: hidden;
391
+ }
392
+
393
+ .ogma-review-toolbar {
394
+ align-items: center;
395
+ border-bottom: 1px solid var(--ogma-line-soft);
396
+ display: flex;
397
+ gap: 12px;
398
+ justify-content: space-between;
399
+ padding: 12px;
400
+ }
401
+
402
+ .ogma-segmented-control {
403
+ background: var(--ogma-panel-low);
404
+ border: 1px solid var(--ogma-line-soft);
405
+ border-radius: 8px;
406
+ display: flex;
407
+ min-inline-size: 0;
408
+ overflow: auto;
409
+ padding: 3px;
410
+ scrollbar-width: none;
411
+ }
412
+
413
+ .ogma-segmented-control::-webkit-scrollbar {
414
+ display: none;
415
+ }
416
+
417
+ .ogma-segmented-control button {
418
+ background: transparent;
419
+ border: 0;
420
+ border-radius: 6px;
421
+ font-size: 13px;
422
+ font-weight: 740;
423
+ min-block-size: 34px;
424
+ padding: 0 13px;
425
+ white-space: nowrap;
426
+ }
427
+
428
+ .ogma-segmented-control button.is-active {
429
+ background: var(--ogma-primary);
430
+ color: var(--ogma-on-primary);
431
+ }
432
+
433
+ .ogma-prototype-stage {
434
+ align-items: start;
435
+ background:
436
+ linear-gradient(90deg, rgba(116, 129, 127, 0.12) 1px, transparent 1px),
437
+ linear-gradient(0deg, rgba(116, 129, 127, 0.12) 1px, transparent 1px),
438
+ var(--ogma-panel-low);
439
+ background-size: 32px 32px;
440
+ display: grid;
441
+ min-block-size: 620px;
442
+ overflow: auto;
443
+ padding: 36px;
444
+ place-items: start center;
445
+ }
446
+
447
+ .ogma-prototype-stage.is-annotating {
448
+ cursor: crosshair;
449
+ }
450
+
451
+ .ogma-prototype-frame {
452
+ background: var(--ogma-panel);
453
+ border: 1px solid rgba(81, 96, 94, 0.22);
454
+ border-radius: var(--ogma-radius);
455
+ box-shadow: 0 22px 70px rgba(23, 32, 31, 0.18);
456
+ inline-size: min(var(--ogma-screen-width), 100%);
457
+ min-block-size: 560px;
458
+ overflow: hidden;
459
+ position: relative;
460
+ }
461
+
462
+ .ogma-prototype-stage.is-tablet .ogma-prototype-frame {
463
+ inline-size: min(760px, 100%);
464
+ }
465
+
466
+ .ogma-prototype-stage.is-mobile .ogma-prototype-frame {
467
+ inline-size: min(430px, 100%);
468
+ }
469
+
470
+ .ogma-annotation-pin {
471
+ align-items: center;
472
+ border: 2px solid white;
473
+ border-radius: 999px;
474
+ box-shadow: 0 4px 16px rgba(17, 23, 24, 0.24);
475
+ color: white;
476
+ display: grid;
477
+ font-size: 12px;
478
+ font-weight: 800;
479
+ block-size: 30px;
480
+ inline-size: 30px;
481
+ letter-spacing: 0;
482
+ padding: 0;
483
+ place-items: center;
484
+ position: absolute;
485
+ transform: translate(-50%, -50%);
486
+ z-index: 3;
487
+ }
488
+
489
+ .ogma-annotation-pin.is-open {
490
+ background: var(--ogma-red);
491
+ }
492
+
493
+ .ogma-annotation-pin.is-queued {
494
+ background: var(--ogma-amber);
495
+ }
496
+
497
+ .ogma-annotation-pin.is-addressed {
498
+ background: var(--ogma-green);
499
+ }
500
+
501
+ .ogma-annotation-pin.is-selected {
502
+ outline: 3px solid var(--ogma-blue-soft);
503
+ outline-offset: 3px;
504
+ }
505
+
506
+ .ogma-metric-row {
507
+ display: grid;
508
+ gap: 10px;
509
+ grid-template-columns: repeat(3, minmax(0, 1fr));
510
+ margin-block-end: 16px;
511
+ }
512
+
513
+ .ogma-metric {
514
+ background: var(--ogma-panel-low);
515
+ border: 1px solid var(--ogma-line-soft);
516
+ border-radius: 8px;
517
+ padding: 12px;
518
+ }
519
+
520
+ .ogma-metric strong {
521
+ display: block;
522
+ font-size: 24px;
523
+ line-height: 1;
524
+ margin-block-end: 6px;
525
+ }
526
+
527
+ .ogma-metric span {
528
+ color: var(--ogma-muted);
529
+ display: block;
530
+ font-size: 12px;
531
+ font-weight: 740;
532
+ line-height: 1.25;
533
+ }
534
+
535
+ .ogma-metric.is-open strong {
536
+ color: var(--ogma-red);
537
+ }
538
+
539
+ .ogma-metric.is-queued strong {
540
+ color: var(--ogma-amber);
541
+ }
542
+
543
+ .ogma-metric.is-addressed strong {
544
+ color: var(--ogma-green);
545
+ }
546
+
547
+ .ogma-empty-state,
548
+ .ogma-render-error {
549
+ align-items: center;
550
+ color: var(--ogma-muted);
551
+ display: grid;
552
+ min-block-size: 180px;
553
+ place-items: center;
554
+ text-align: center;
555
+ }
556
+
557
+ .ogma-empty-state p {
558
+ margin: 8px 0 0;
559
+ }
560
+
561
+ .ogma-render-error {
562
+ min-block-size: 560px;
563
+ padding: 28px;
564
+ }
565
+
566
+ .ogma-render-error h2 {
567
+ margin: 0;
568
+ }
569
+
570
+ .ogma-render-error pre {
571
+ background: #111718;
572
+ border-radius: 8px;
573
+ color: #ffdad6;
574
+ inline-size: min(680px, 100%);
575
+ overflow: auto;
576
+ padding: 14px;
577
+ text-align: left;
578
+ }
579
+
580
+ .ogma-annotation-editor {
581
+ display: grid;
582
+ gap: 13px;
583
+ }
584
+
585
+ .ogma-editor-topline {
586
+ gap: 8px;
587
+ }
588
+
589
+ .ogma-editor-topline strong {
590
+ font-size: 15px;
591
+ }
592
+
593
+ .ogma-editor-topline span:last-child {
594
+ color: var(--ogma-muted);
595
+ font-size: 13px;
596
+ font-weight: 700;
597
+ overflow-wrap: anywhere;
598
+ }
599
+
600
+ .ogma-status-dot {
601
+ border-radius: 999px;
602
+ block-size: 11px;
603
+ inline-size: 11px;
604
+ }
605
+
606
+ .ogma-status-dot.is-open {
607
+ background: var(--ogma-red);
608
+ }
609
+
610
+ .ogma-status-dot.is-queued {
611
+ background: var(--ogma-amber);
612
+ }
613
+
614
+ .ogma-status-dot.is-addressed {
615
+ background: var(--ogma-green);
616
+ }
617
+
618
+ .ogma-annotation-editor label {
619
+ display: grid;
620
+ gap: 6px;
621
+ }
622
+
623
+ .ogma-annotation-editor label span {
624
+ color: var(--ogma-muted);
625
+ font-size: 12px;
626
+ font-weight: 760;
627
+ text-transform: uppercase;
628
+ }
629
+
630
+ .ogma-annotation-editor input,
631
+ .ogma-annotation-editor select,
632
+ .ogma-annotation-editor textarea {
633
+ background: var(--ogma-panel-low);
634
+ border: 1px solid var(--ogma-line-soft);
635
+ border-radius: 8px;
636
+ inline-size: 100%;
637
+ line-height: 1.4;
638
+ padding: 10px 11px;
639
+ }
640
+
641
+ .ogma-annotation-editor textarea {
642
+ resize: vertical;
643
+ }
644
+
645
+ .ogma-agent-grid {
646
+ display: grid;
647
+ gap: 14px;
648
+ grid-template-columns: repeat(3, minmax(0, 1fr));
649
+ }
650
+
651
+ .ogma-agent-card {
652
+ background: var(--ogma-panel-low);
653
+ border: 1px solid var(--ogma-line-soft);
654
+ border-radius: 8px;
655
+ display: grid;
656
+ gap: 14px;
657
+ padding: 16px;
658
+ }
659
+
660
+ .ogma-agent-card p {
661
+ color: var(--ogma-muted);
662
+ font-size: 14px;
663
+ line-height: 1.45;
664
+ margin: 0;
665
+ overflow-wrap: anywhere;
666
+ }
667
+
668
+ .ogma-contract-item {
669
+ align-items: center;
670
+ display: grid;
671
+ gap: 10px;
672
+ grid-template-columns: auto minmax(0, 1fr);
673
+ }
674
+
675
+ .ogma-contract-item span {
676
+ align-items: center;
677
+ background: var(--ogma-primary-soft);
678
+ border-radius: 999px;
679
+ color: var(--ogma-primary-strong);
680
+ display: grid;
681
+ font-size: 13px;
682
+ font-weight: 780;
683
+ block-size: 28px;
684
+ inline-size: 28px;
685
+ place-items: center;
686
+ }
687
+
688
+ .ogma-contract-item p {
689
+ color: var(--ogma-muted);
690
+ font-size: 14px;
691
+ font-weight: 680;
692
+ margin: 0;
693
+ }
694
+
695
+ .ogma-feedback-table {
696
+ border: 1px solid var(--ogma-line-soft);
697
+ border-radius: 8px;
698
+ overflow: hidden;
699
+ }
700
+
701
+ .ogma-feedback-row {
702
+ align-items: center;
703
+ background: var(--ogma-panel);
704
+ border: 0;
705
+ border-bottom: 1px solid var(--ogma-line-soft);
706
+ display: grid;
707
+ gap: 12px;
708
+ grid-template-columns: 92px minmax(150px, 0.8fr) 108px minmax(220px, 1.2fr);
709
+ inline-size: 100%;
710
+ min-block-size: 54px;
711
+ padding: 10px 12px;
712
+ text-align: left;
713
+ }
714
+
715
+ .ogma-feedback-row:last-child {
716
+ border-bottom: 0;
717
+ }
718
+
719
+ .ogma-feedback-row.is-heading {
720
+ background: var(--ogma-panel-low);
721
+ color: var(--ogma-muted);
722
+ font-size: 12px;
723
+ font-weight: 780;
724
+ min-block-size: 42px;
725
+ text-transform: uppercase;
726
+ }
727
+
728
+ .ogma-feedback-row.is-selected {
729
+ background: #eef5ff;
730
+ }
731
+
732
+ .ogma-feedback-row span {
733
+ font-size: 14px;
734
+ line-height: 1.35;
735
+ min-inline-size: 0;
736
+ overflow-wrap: anywhere;
737
+ }
738
+
739
+ .ogma-status-chip {
740
+ border-radius: 999px;
741
+ display: inline-flex;
742
+ font-size: 12px;
743
+ font-weight: 780;
744
+ justify-content: center;
745
+ padding: 5px 9px;
746
+ text-transform: uppercase;
747
+ }
748
+
749
+ .ogma-status-chip.is-open {
750
+ background: var(--ogma-red-soft);
751
+ color: var(--ogma-red);
752
+ }
753
+
754
+ .ogma-status-chip.is-queued {
755
+ background: var(--ogma-amber-soft);
756
+ color: var(--ogma-amber);
757
+ }
758
+
759
+ .ogma-status-chip.is-addressed {
760
+ background: var(--ogma-green-soft);
761
+ color: var(--ogma-green);
762
+ }
763
+
764
+ .ogma-demo-screen {
765
+ display: grid;
766
+ grid-template-columns: 92px minmax(0, 1fr);
767
+ min-block-size: 560px;
768
+ }
769
+
770
+ .ogma-demo-sidebar {
771
+ align-items: center;
772
+ background: #eaf0ee;
773
+ border-right: 1px solid var(--ogma-line-soft);
774
+ display: flex;
775
+ flex-direction: column;
776
+ gap: 16px;
777
+ padding: 22px 12px;
778
+ }
779
+
780
+ .ogma-demo-brand {
781
+ align-items: center;
782
+ background: var(--ogma-primary);
783
+ border-radius: 8px;
784
+ color: var(--ogma-on-primary);
785
+ display: grid;
786
+ font-weight: 800;
787
+ block-size: 40px;
788
+ inline-size: 40px;
789
+ place-items: center;
790
+ }
791
+
792
+ .ogma-demo-nav {
793
+ background: var(--ogma-line);
794
+ border-radius: 999px;
795
+ color: transparent;
796
+ display: block;
797
+ block-size: 9px;
798
+ inline-size: 54px;
799
+ }
800
+
801
+ .ogma-demo-nav.is-active {
802
+ background: var(--ogma-primary);
803
+ }
804
+
805
+ .ogma-demo-content {
806
+ padding: 28px;
807
+ }
808
+
809
+ .ogma-demo-header {
810
+ align-items: center;
811
+ display: flex;
812
+ justify-content: space-between;
813
+ margin-block-end: 24px;
814
+ }
815
+
816
+ .ogma-demo-header p,
817
+ .ogma-spec-screen header p,
818
+ .ogma-flow-screen header p,
819
+ .ogma-phone main p {
820
+ color: var(--ogma-primary);
821
+ font-size: 12px;
822
+ font-weight: 780;
823
+ margin: 0 0 5px;
824
+ text-transform: uppercase;
825
+ }
826
+
827
+ .ogma-demo-header h2,
828
+ .ogma-spec-screen h2,
829
+ .ogma-flow-screen h2,
830
+ .ogma-phone h2 {
831
+ font-size: 30px;
832
+ line-height: 1.05;
833
+ margin: 0;
834
+ }
835
+
836
+ .ogma-demo-header button,
837
+ .ogma-flow-columns button,
838
+ .ogma-phone button {
839
+ background: var(--ogma-primary);
840
+ border: 0;
841
+ border-radius: 8px;
842
+ color: var(--ogma-on-primary);
843
+ font-weight: 760;
844
+ min-block-size: 38px;
845
+ padding: 0 13px;
846
+ }
847
+
848
+ .ogma-demo-grid {
849
+ display: grid;
850
+ gap: 16px;
851
+ grid-template-columns: minmax(0, 1.35fr) minmax(190px, 0.65fr);
852
+ }
853
+
854
+ .ogma-demo-card {
855
+ background: var(--ogma-panel-low);
856
+ border: 1px solid var(--ogma-line-soft);
857
+ border-radius: 8px;
858
+ min-block-size: 152px;
859
+ padding: 18px;
860
+ }
861
+
862
+ .ogma-demo-card.is-wide {
863
+ min-block-size: 258px;
864
+ }
865
+
866
+ .ogma-demo-card.is-accent {
867
+ background: var(--ogma-primary-soft);
868
+ color: var(--ogma-primary-strong);
869
+ }
870
+
871
+ .ogma-demo-card.is-action {
872
+ background: var(--ogma-amber-soft);
873
+ color: #3f2600;
874
+ }
875
+
876
+ .ogma-demo-card strong {
877
+ display: block;
878
+ font-size: 42px;
879
+ line-height: 1;
880
+ }
881
+
882
+ .ogma-demo-card p {
883
+ font-size: 14px;
884
+ font-weight: 700;
885
+ margin: 9px 0 0;
886
+ }
887
+
888
+ .ogma-demo-card-title,
889
+ .ogma-demo-list-row {
890
+ background: var(--ogma-line);
891
+ border-radius: 999px;
892
+ block-size: 10px;
893
+ }
894
+
895
+ .ogma-demo-card-title {
896
+ inline-size: 42%;
897
+ margin-block-end: 28px;
898
+ }
899
+
900
+ .ogma-demo-chart {
901
+ align-items: end;
902
+ display: grid;
903
+ gap: 12px;
904
+ grid-template-columns: repeat(7, minmax(0, 1fr));
905
+ block-size: 172px;
906
+ }
907
+
908
+ .ogma-demo-chart span {
909
+ background: var(--ogma-blue);
910
+ border-radius: 8px 8px 0 0;
911
+ }
912
+
913
+ .ogma-demo-list-row {
914
+ margin-block-end: 18px;
915
+ }
916
+
917
+ .ogma-demo-list-row.is-medium {
918
+ inline-size: 72%;
919
+ }
920
+
921
+ .ogma-demo-list-row.is-short {
922
+ inline-size: 48%;
923
+ margin-block-end: 0;
924
+ }
925
+
926
+ .ogma-spec-screen,
927
+ .ogma-flow-screen,
928
+ .ogma-mobile-screen {
929
+ min-block-size: 560px;
930
+ padding: 34px;
931
+ }
932
+
933
+ .ogma-spec-grid,
934
+ .ogma-flow-columns {
935
+ display: grid;
936
+ gap: 16px;
937
+ margin-block-start: 28px;
938
+ }
939
+
940
+ .ogma-spec-grid {
941
+ grid-template-columns: repeat(2, minmax(0, 1fr));
942
+ }
943
+
944
+ .ogma-spec-grid section,
945
+ .ogma-flow-columns section {
946
+ background: var(--ogma-panel-low);
947
+ border: 1px solid var(--ogma-line-soft);
948
+ border-radius: 8px;
949
+ padding: 20px;
950
+ }
951
+
952
+ .ogma-spec-grid span,
953
+ .ogma-flow-columns span {
954
+ color: var(--ogma-primary);
955
+ display: block;
956
+ font-size: 13px;
957
+ font-weight: 800;
958
+ margin-block-end: 18px;
959
+ }
960
+
961
+ .ogma-spec-grid h3,
962
+ .ogma-flow-columns h3 {
963
+ font-size: 20px;
964
+ margin: 0 0 8px;
965
+ }
966
+
967
+ .ogma-spec-grid p {
968
+ color: var(--ogma-muted);
969
+ line-height: 1.45;
970
+ margin: 0;
971
+ }
972
+
973
+ .ogma-flow-columns {
974
+ grid-template-columns: repeat(3, minmax(0, 1fr));
975
+ }
976
+
977
+ .ogma-flow-line {
978
+ background: var(--ogma-line);
979
+ border-radius: 999px;
980
+ block-size: 9px;
981
+ margin: 26px 0;
982
+ }
983
+
984
+ .ogma-mobile-screen {
985
+ display: grid;
986
+ place-items: center;
987
+ }
988
+
989
+ .ogma-phone {
990
+ background: #f9fbfa;
991
+ border: 10px solid #17201f;
992
+ border-radius: 34px;
993
+ box-shadow: 0 18px 60px rgba(23, 32, 31, 0.22);
994
+ display: grid;
995
+ grid-template-rows: auto minmax(0, 1fr) auto;
996
+ min-block-size: 500px;
997
+ overflow: hidden;
998
+ inline-size: min(310px, 100%);
999
+ }
1000
+
1001
+ .ogma-phone header,
1002
+ .ogma-phone nav {
1003
+ align-items: center;
1004
+ display: flex;
1005
+ justify-content: space-between;
1006
+ padding: 18px;
1007
+ }
1008
+
1009
+ .ogma-phone header span {
1010
+ font-weight: 800;
1011
+ }
1012
+
1013
+ .ogma-phone main {
1014
+ padding: 8px 18px 20px;
1015
+ }
1016
+
1017
+ .ogma-phone-list {
1018
+ display: grid;
1019
+ gap: 12px;
1020
+ margin-block-start: 24px;
1021
+ }
1022
+
1023
+ .ogma-phone-list span {
1024
+ background: var(--ogma-panel-low);
1025
+ border: 1px solid var(--ogma-line-soft);
1026
+ border-radius: 8px;
1027
+ min-block-size: 72px;
1028
+ }
1029
+
1030
+ .ogma-phone nav span {
1031
+ background: var(--ogma-line);
1032
+ border-radius: 999px;
1033
+ block-size: 8px;
1034
+ inline-size: 54px;
1035
+ }
1036
+
1037
+ .ogma-phone nav span.is-active {
1038
+ background: var(--ogma-primary);
1039
+ }
1040
+
1041
+ .ogma-empty-screen {
1042
+ display: grid;
1043
+ min-block-size: 560px;
1044
+ padding: 28px;
1045
+ place-content: center;
1046
+ text-align: center;
1047
+ }
1048
+
1049
+ @media (max-width: 1100px) {
1050
+ .ogma-review-grid,
1051
+ .ogma-setup-grid,
1052
+ .ogma-handoff-grid,
1053
+ .ogma-feedback-grid {
1054
+ grid-template-columns: 1fr;
1055
+ }
1056
+
1057
+ .ogma-agent-grid {
1058
+ grid-template-columns: 1fr;
1059
+ }
1060
+
1061
+ .ogma-side-panel {
1062
+ order: 2;
1063
+ }
1064
+ }
1065
+
1066
+ @media (max-width: 760px) {
1067
+ .ogma-shell {
1068
+ flex-direction: column;
1069
+ }
1070
+
1071
+ .ogma-nav {
1072
+ border-bottom: 1px solid var(--ogma-line);
1073
+ border-right: 0;
1074
+ flex-direction: row;
1075
+ inline-size: 100%;
1076
+ overflow: auto;
1077
+ padding: 10px 12px;
1078
+ }
1079
+
1080
+ .ogma-nav-list {
1081
+ display: flex;
1082
+ min-inline-size: max-content;
1083
+ }
1084
+
1085
+ .ogma-nav-item {
1086
+ min-block-size: 50px;
1087
+ min-inline-size: 74px;
1088
+ }
1089
+
1090
+ .ogma-topbar {
1091
+ align-items: start;
1092
+ flex-direction: column;
1093
+ padding: 18px 16px 12px;
1094
+ }
1095
+
1096
+ .ogma-workspace-grid {
1097
+ padding: 0 16px 18px;
1098
+ }
1099
+
1100
+ .ogma-review-toolbar,
1101
+ .ogma-section-heading {
1102
+ align-items: stretch;
1103
+ flex-direction: column;
1104
+ }
1105
+
1106
+ .ogma-prototype-stage {
1107
+ min-block-size: 520px;
1108
+ padding: 18px;
1109
+ }
1110
+
1111
+ .ogma-prototype-frame {
1112
+ min-block-size: 500px;
1113
+ }
1114
+
1115
+ .ogma-feedback-row {
1116
+ grid-template-columns: 76px minmax(120px, 1fr);
1117
+ }
1118
+
1119
+ .ogma-feedback-row span:nth-child(3),
1120
+ .ogma-feedback-row span:nth-child(4) {
1121
+ grid-column: 2;
1122
+ }
1123
+
1124
+ .ogma-demo-screen,
1125
+ .ogma-demo-grid,
1126
+ .ogma-spec-grid,
1127
+ .ogma-flow-columns {
1128
+ grid-template-columns: 1fr;
1129
+ }
1130
+
1131
+ .ogma-demo-sidebar {
1132
+ display: none;
1133
+ }
1134
+
1135
+ .ogma-demo-header {
1136
+ align-items: start;
1137
+ flex-direction: column;
1138
+ gap: 12px;
1139
+ }
1140
+ }