@echelon-foundry/design-system 0.2.0-main.16.1 → 0.2.0-main.167.1

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 (98) hide show
  1. package/dist/all.css +677 -0
  2. package/dist/build-metrics.json +95 -3
  3. package/dist/components.css +649 -0
  4. package/dist/foundations.css +28 -0
  5. package/dist/patterns/active-filter-summary.html +10 -0
  6. package/dist/patterns/attention-path.html +29 -0
  7. package/dist/patterns/cluster.html +5 -0
  8. package/dist/patterns/command-group.html +6 -0
  9. package/dist/patterns/comparison-grid.html +7 -0
  10. package/dist/patterns/comparison-pairs.html +13 -0
  11. package/dist/patterns/dense-ledger.html +7 -0
  12. package/dist/patterns/emphasis-budget.html +21 -0
  13. package/dist/patterns/evidence-relationship.html +1 -0
  14. package/dist/patterns/feed-item.html +12 -0
  15. package/dist/patterns/focus-stage.html +4 -0
  16. package/dist/patterns/frame.html +4 -0
  17. package/dist/patterns/freshness.html +1 -0
  18. package/dist/patterns/handoff-summary.html +1 -0
  19. package/dist/patterns/hierarchy-tree.html +11 -0
  20. package/dist/patterns/identifier.html +9 -0
  21. package/dist/patterns/landmark-region.html +4 -0
  22. package/dist/patterns/lane-board.html +10 -0
  23. package/dist/patterns/measure.html +4 -0
  24. package/dist/patterns/mosaic.html +6 -0
  25. package/dist/patterns/navigation-shell.html +8 -0
  26. package/dist/patterns/overflow-command-disclosure.html +6 -0
  27. package/dist/patterns/overview-disclosure.html +12 -0
  28. package/dist/patterns/path-summary.html +8 -0
  29. package/dist/patterns/priority-stack.html +4 -0
  30. package/dist/patterns/rail.html +4 -0
  31. package/dist/patterns/relationship-index.html +8 -0
  32. package/dist/patterns/responsive-grid.html +5 -0
  33. package/dist/patterns/scope-trail.html +1 -0
  34. package/dist/patterns/security-blockers.html +3 -0
  35. package/dist/patterns/security-evidence-age.html +1 -0
  36. package/dist/patterns/security-evidence-chain.html +2 -0
  37. package/dist/patterns/security-exception.html +2 -0
  38. package/dist/patterns/security-invariant-result.html +1 -0
  39. package/dist/patterns/security-posture.html +22 -0
  40. package/dist/patterns/security-state-matrix.html +5 -0
  41. package/dist/patterns/security-trend.html +1 -0
  42. package/dist/patterns/security-unknown.html +2 -0
  43. package/dist/patterns/sidebar.html +4 -0
  44. package/dist/patterns/spatial-canvas.html +13 -0
  45. package/dist/patterns/split-pane.html +4 -0
  46. package/dist/patterns/stack.html +5 -0
  47. package/dist/patterns/state-survivability.html +19 -0
  48. package/dist/patterns/switcher.html +4 -0
  49. package/dist/patterns/verification-frame.html +22 -0
  50. package/dist/patterns/workspace-shell.html +6 -0
  51. package/package.json +1 -1
  52. package/patterns/active-filter-summary.html +10 -0
  53. package/patterns/attention-path.html +29 -0
  54. package/patterns/cluster.html +5 -0
  55. package/patterns/command-group.html +6 -0
  56. package/patterns/comparison-grid.html +7 -0
  57. package/patterns/comparison-pairs.html +13 -0
  58. package/patterns/dense-ledger.html +7 -0
  59. package/patterns/emphasis-budget.html +21 -0
  60. package/patterns/evidence-relationship.html +1 -0
  61. package/patterns/feed-item.html +12 -0
  62. package/patterns/focus-stage.html +4 -0
  63. package/patterns/frame.html +4 -0
  64. package/patterns/freshness.html +1 -0
  65. package/patterns/handoff-summary.html +1 -0
  66. package/patterns/hierarchy-tree.html +11 -0
  67. package/patterns/identifier.html +9 -0
  68. package/patterns/landmark-region.html +4 -0
  69. package/patterns/lane-board.html +10 -0
  70. package/patterns/measure.html +4 -0
  71. package/patterns/mosaic.html +6 -0
  72. package/patterns/navigation-shell.html +8 -0
  73. package/patterns/overflow-command-disclosure.html +6 -0
  74. package/patterns/overview-disclosure.html +12 -0
  75. package/patterns/path-summary.html +8 -0
  76. package/patterns/priority-stack.html +4 -0
  77. package/patterns/rail.html +4 -0
  78. package/patterns/relationship-index.html +8 -0
  79. package/patterns/responsive-grid.html +5 -0
  80. package/patterns/scope-trail.html +1 -0
  81. package/patterns/security-blockers.html +3 -0
  82. package/patterns/security-evidence-age.html +1 -0
  83. package/patterns/security-evidence-chain.html +2 -0
  84. package/patterns/security-exception.html +2 -0
  85. package/patterns/security-invariant-result.html +1 -0
  86. package/patterns/security-posture.html +22 -0
  87. package/patterns/security-posture.manifest.md +20 -0
  88. package/patterns/security-state-matrix.html +5 -0
  89. package/patterns/security-trend.html +1 -0
  90. package/patterns/security-unknown.html +2 -0
  91. package/patterns/sidebar.html +4 -0
  92. package/patterns/spatial-canvas.html +13 -0
  93. package/patterns/split-pane.html +4 -0
  94. package/patterns/stack.html +5 -0
  95. package/patterns/state-survivability.html +19 -0
  96. package/patterns/switcher.html +4 -0
  97. package/patterns/verification-frame.html +22 -0
  98. package/patterns/workspace-shell.html +6 -0
package/dist/all.css CHANGED
@@ -210,6 +210,34 @@
210
210
  border-color: CanvasText;
211
211
  }
212
212
  }
213
+
214
+ /* Visual Engineering composition primitives -------------------------- */
215
+ .ef-breakout { inline-size: min(100%, var(--ef-breakout-max, 90rem)); max-inline-size: none; }
216
+ .ef-rail { --ef-rail-measure: minmax(12rem, 18rem); --ef-rail-content-min: 50%; --ef-rail-space: var(--ef-primitive-spacing-5, 1.5rem); display: grid; grid-template-columns: var(--ef-rail-measure) minmax(var(--ef-rail-content-min), 1fr); gap: var(--ef-rail-space); align-items: start; }
217
+ .ef-rail[data-side="end"] { grid-template-columns: minmax(var(--ef-rail-content-min), 1fr) var(--ef-rail-measure); }
218
+ .ef-rail > * { min-inline-size: 0; }
219
+ .ef-responsive-grid { --ef-responsive-grid-min: 16rem; --ef-responsive-grid-space: var(--ef-primitive-spacing-4, 1rem); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ef-responsive-grid-min)), 1fr)); gap: var(--ef-responsive-grid-space); }
220
+ .ef-responsive-grid > * { min-inline-size: 0; }
221
+ .ef-span-2 { grid-column: span 2; }
222
+ .ef-span-full { grid-column: 1 / -1; }
223
+ .ef-bounded-overflow { max-inline-size: 100%; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
224
+ .ef-priority-stack { --ef-priority-min: 18rem; --ef-priority-space: var(--ef-primitive-spacing-4, 1rem); display: flex; flex-wrap: wrap; gap: var(--ef-priority-space); align-items: start; }
225
+ .ef-priority-stack > * { flex: 1 1 var(--ef-priority-min); min-inline-size: min(100%, var(--ef-priority-min)); }
226
+ .ef-priority-stack > [data-priority="primary"] { flex-grow: 2; }
227
+ .ef-focus-stage { --ef-focus-stage-support: minmax(14rem, 20rem); --ef-focus-stage-space: var(--ef-primitive-spacing-5, 1.5rem); display: grid; grid-template-columns: minmax(0, 1fr) var(--ef-focus-stage-support); gap: var(--ef-focus-stage-space); align-items: start; }
228
+ .ef-focus-stage__primary, .ef-focus-stage__support { min-inline-size: 0; }
229
+ .ef-mosaic { --ef-mosaic-space: var(--ef-primitive-spacing-4, 1rem); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ef-mosaic-space); }
230
+ .ef-mosaic > * { min-inline-size: 0; }
231
+ .ef-mosaic > [data-span="2"] { grid-column: span 2; }
232
+ .ef-mosaic > [data-span="full"] { grid-column: 1 / -1; }
233
+ .ef-dense-ledger { inline-size: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
234
+ .ef-dense-ledger :is(th, td) { padding: var(--ef-ledger-cell-space, var(--ef-primitive-spacing-2, 0.5rem)); border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7); text-align: start; vertical-align: top; }
235
+ [data-density="relaxed"] { --ef-density-space: var(--ef-primitive-spacing-5, 1.5rem); }
236
+ [data-density="standard"] { --ef-density-space: var(--ef-primitive-spacing-4, 1rem); }
237
+ [data-density="compact"], [data-density="analytical"] { --ef-density-space: var(--ef-primitive-spacing-2, 0.5rem); }
238
+ :where(.ef-stack, .ef-grid, .ef-responsive-grid, .ef-priority-stack)[data-density] { gap: var(--ef-density-space); }
239
+ @media (max-width: 48rem) { .ef-rail, .ef-rail[data-side="end"], .ef-focus-stage { grid-template-columns: minmax(0, 1fr); } .ef-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ef-span-2 { grid-column: 1 / -1; } }
240
+ @media (max-width: 30rem) { .ef-mosaic { grid-template-columns: minmax(0, 1fr); } .ef-mosaic > [data-span="2"], .ef-mosaic > [data-span="full"] { grid-column: auto; } .ef-responsive-grid { --ef-responsive-grid-min: 100%; } .ef-priority-stack { --ef-priority-min: 100%; } }
213
241
  }
214
242
 
215
243
  @layer echelon.components {
@@ -2736,6 +2764,655 @@
2736
2764
  color: CanvasText;
2737
2765
  }
2738
2766
  }
2767
+
2768
+ /* Tutela security results --------------------------------------------- */
2769
+ :where(.ef-security-posture,.ef-security-state-matrix,.ef-security-blockers,.ef-security-evidence-chain,.ef-security-unknown,.ef-security-exception) {
2770
+ min-inline-size: 0; border: 1px solid var(--ef-color-border-functional,#3a403c);
2771
+ background: var(--ef-color-surface-primary,#f2efe7); color: var(--ef-color-text-primary,#171a18);
2772
+ padding: var(--ef-primitive-spacing-4,1rem);
2773
+ }
2774
+ .ef-security-posture__header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:start; }
2775
+ .ef-security-posture__eyebrow,.ef-security-unknown header p,.ef-security-exception header p { margin:0; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
2776
+ .ef-security-posture__meta,.ef-security-unknown dl,.ef-security-exception dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr)); gap:.75rem; }
2777
+ :where(.ef-security-posture__meta,.ef-security-unknown dl,.ef-security-exception dl) div { min-inline-size:0; }
2778
+ :where(.ef-security-posture__meta,.ef-security-unknown dl,.ef-security-exception dl) dt { color:var(--ef-color-text-secondary,#686d68); font-size:.75rem; font-weight:700; }
2779
+ :where(.ef-security-posture__meta,.ef-security-unknown dl,.ef-security-exception dl) dd { margin:0; overflow-wrap:anywhere; }
2780
+ .ef-security-posture__blockers,.ef-security-blockers { border-inline-start:.35rem solid currentColor; }
2781
+ .ef-security-posture__qualification { color:var(--ef-color-text-secondary,#686d68); font-size:.8125rem; }
2782
+ .ef-security-state-matrix__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(7rem,1fr)); gap:.5rem; margin:0; }
2783
+ .ef-security-state-matrix__grid div { border-block-start:.25rem solid currentColor; padding:.75rem; background:var(--ef-color-surface-secondary,#e3e0d7); }
2784
+ .ef-security-state-matrix__grid dt { font-size:.75rem; font-weight:700; }
2785
+ .ef-security-state-matrix__grid dd { margin:0; font-size:clamp(1.4rem,4vw,2rem); font-weight:750; }
2786
+ .ef-security-blockers ul { display:grid; gap:.75rem; padding-inline-start:1.25rem; }
2787
+ .ef-security-blockers li { padding-inline-start:.25rem; }
2788
+ .ef-security-blockers li span { display:block; }
2789
+ .ef-security-evidence-chain ol { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.5rem; padding:0; list-style:none; }
2790
+ .ef-security-evidence-chain li { padding:.75rem; border:1px solid var(--ef-color-border-functional,#3a403c); overflow-wrap:anywhere; }
2791
+ .ef-security-evidence-chain li strong,.ef-security-evidence-chain li span,.ef-security-evidence-chain li a { display:block; }
2792
+ @media (max-width:30rem) { .ef-security-posture__header { display:grid; } .ef-security-evidence-chain ol { grid-template-columns:1fr; } }
2793
+ @media (forced-colors:active) { :where(.ef-security-posture__blockers,.ef-security-blockers,.ef-security-state-matrix__grid div) { border-color:CanvasText; } }
2794
+
2795
+ :where(.ef-invariant-result,.ef-evidence-age,.ef-security-trend) { min-inline-size:0; border:1px solid var(--ef-color-border-functional,#3a403c); padding:var(--ef-primitive-spacing-4,1rem); background:var(--ef-color-surface-primary,#f2efe7); }
2796
+ .ef-invariant-result header { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1rem; }
2797
+ .ef-invariant-result header p { flex-basis:100%; margin:0; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
2798
+ .ef-invariant-result dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr)); gap:.75rem; }
2799
+ .ef-invariant-result dt { color:var(--ef-color-text-secondary,#686d68); font-size:.75rem; font-weight:700; } .ef-invariant-result dd { margin:0; overflow-wrap:anywhere; }
2800
+ :where(.ef-evidence-age,.ef-security-trend) ul { display:grid; gap:.5rem; margin:0; padding:0; list-style:none; }
2801
+ :where(.ef-evidence-age,.ef-security-trend) li { display:grid; gap:.2rem; border-inline-start:.3rem solid currentColor; padding:.65rem .75rem; background:var(--ef-color-surface-secondary,#e3e0d7); }
2802
+ :where(.ef-evidence-age,.ef-security-trend) li span { overflow-wrap:anywhere; }
2803
+
2804
+ /* Composition primitives ---------------------------------------------- */
2805
+ .ef-stack {
2806
+ --ef-stack-space: var(--ef-primitive-spacing-4, 1rem);
2807
+ display: flex;
2808
+ flex-direction: column;
2809
+ justify-content: flex-start;
2810
+ }
2811
+ .ef-stack > * { margin-block: 0; }
2812
+ .ef-stack > * + * { margin-block-start: var(--ef-stack-space); }
2813
+
2814
+ .ef-cluster {
2815
+ --ef-cluster-space: var(--ef-primitive-spacing-3, 0.75rem);
2816
+ display: flex;
2817
+ flex-wrap: wrap;
2818
+ align-items: center;
2819
+ gap: var(--ef-cluster-space);
2820
+ }
2821
+
2822
+ .ef-sidebar {
2823
+ --ef-sidebar-width: 18rem;
2824
+ --ef-sidebar-content-min: 60%;
2825
+ --ef-sidebar-space: var(--ef-primitive-spacing-5, 1.5rem);
2826
+ display: flex;
2827
+ flex-wrap: wrap;
2828
+ gap: var(--ef-sidebar-space);
2829
+ align-items: stretch;
2830
+ }
2831
+ .ef-sidebar__side {
2832
+ flex-basis: var(--ef-sidebar-width);
2833
+ flex-grow: 1;
2834
+ }
2835
+ .ef-sidebar__content {
2836
+ flex-basis: 0;
2837
+ flex-grow: 999;
2838
+ min-inline-size: min(100%, var(--ef-sidebar-content-min));
2839
+ }
2840
+
2841
+ .ef-frame {
2842
+ --ef-frame-ratio: 16 / 9;
2843
+ margin: 0;
2844
+ }
2845
+ .ef-frame__media {
2846
+ aspect-ratio: var(--ef-frame-ratio);
2847
+ overflow: hidden;
2848
+ }
2849
+ .ef-frame__media > :is(img, video, iframe, svg) {
2850
+ inline-size: 100%;
2851
+ block-size: 100%;
2852
+ object-fit: cover;
2853
+ }
2854
+
2855
+ .ef-measure {
2856
+ --ef-measure: 65ch;
2857
+ inline-size: min(100%, var(--ef-measure));
2858
+ }
2859
+
2860
+ @media (max-width: 30rem) {
2861
+ .ef-sidebar {
2862
+ display: grid;
2863
+ grid-template-columns: minmax(0, 1fr);
2864
+ }
2865
+ .ef-sidebar__side,
2866
+ .ef-sidebar__content {
2867
+ min-inline-size: 0;
2868
+ inline-size: 100%;
2869
+ }
2870
+ }
2871
+
2872
+
2873
+ .ef-landmark-region {
2874
+ --ef-landmark-space: var(--ef-primitive-spacing-3, 0.75rem);
2875
+ position: sticky;
2876
+ inset-block-start: 0;
2877
+ z-index: 1;
2878
+ display: flex;
2879
+ flex-wrap: wrap;
2880
+ align-items: center;
2881
+ justify-content: space-between;
2882
+ gap: var(--ef-landmark-space);
2883
+ padding-block: var(--ef-landmark-space);
2884
+ background: var(--ef-color-surface-primary, Canvas);
2885
+ }
2886
+ .ef-landmark-region nav {
2887
+ display: flex;
2888
+ flex-wrap: wrap;
2889
+ gap: var(--ef-landmark-space);
2890
+ }
2891
+
2892
+ .ef-split-pane {
2893
+ --ef-split-primary: minmax(0, 2fr);
2894
+ --ef-split-secondary: minmax(16rem, 1fr);
2895
+ --ef-split-space: var(--ef-primitive-spacing-5, 1.5rem);
2896
+ display: grid;
2897
+ grid-template-columns: var(--ef-split-primary) var(--ef-split-secondary);
2898
+ gap: var(--ef-split-space);
2899
+ align-items: start;
2900
+ }
2901
+ .ef-split-pane > * { min-inline-size: 0; }
2902
+
2903
+ .ef-comparison-grid {
2904
+ max-inline-size: 100%;
2905
+ overflow-x: auto;
2906
+ overscroll-behavior-inline: contain;
2907
+ }
2908
+ .ef-comparison-grid table {
2909
+ inline-size: 100%;
2910
+ min-inline-size: max-content;
2911
+ border-collapse: collapse;
2912
+ }
2913
+ .ef-comparison-grid :is(th, td) {
2914
+ padding: var(--ef-primitive-spacing-3, 0.75rem);
2915
+ text-align: start;
2916
+ vertical-align: top;
2917
+ }
2918
+
2919
+ @media (max-width: 48rem) {
2920
+ .ef-split-pane { grid-template-columns: minmax(0, 1fr); }
2921
+ .ef-landmark-region { position: static; }
2922
+ }
2923
+
2924
+
2925
+ .ef-command-group {
2926
+ --ef-command-space: var(--ef-primitive-spacing-2, 0.5rem);
2927
+ display: grid;
2928
+ gap: var(--ef-command-space);
2929
+ align-content: start;
2930
+ }
2931
+ .ef-command-group__label { margin: 0; font-size: 0.875rem; }
2932
+ .ef-command-group__commands,
2933
+ .ef-overflow-commands__panel {
2934
+ display: flex;
2935
+ flex-wrap: wrap;
2936
+ gap: var(--ef-command-space, var(--ef-primitive-spacing-2, 0.5rem));
2937
+ }
2938
+ .ef-overflow-commands { position: relative; }
2939
+ .ef-overflow-commands__panel {
2940
+ padding-block-start: var(--ef-primitive-spacing-2, 0.5rem);
2941
+ }
2942
+
2943
+ .ef-switcher {
2944
+ --ef-switcher-threshold: 42rem;
2945
+ --ef-switcher-space: var(--ef-primitive-spacing-5, 1.5rem);
2946
+ display: flex;
2947
+ flex-wrap: wrap;
2948
+ gap: var(--ef-switcher-space);
2949
+ align-items: start;
2950
+ }
2951
+ .ef-switcher__primary { flex: 999 1 28rem; min-inline-size: min(100%, 20rem); }
2952
+ .ef-switcher__secondary { flex: 1 1 16rem; min-inline-size: min(100%, 16rem); }
2953
+
2954
+ .ef-workspace-shell {
2955
+ --ef-workspace-nav: minmax(10rem, 14rem);
2956
+ --ef-workspace-inspector: minmax(14rem, 20rem);
2957
+ --ef-workspace-space: var(--ef-primitive-spacing-4, 1rem);
2958
+ display: grid;
2959
+ grid-template:
2960
+ "landmark landmark landmark" auto
2961
+ "navigation primary inspector" minmax(0, 1fr)
2962
+ / var(--ef-workspace-nav) minmax(0, 1fr) var(--ef-workspace-inspector);
2963
+ gap: var(--ef-workspace-space);
2964
+ align-items: start;
2965
+ }
2966
+ .ef-workspace-shell__landmark { grid-area: landmark; }
2967
+ .ef-workspace-shell__navigation { grid-area: navigation; display: grid; gap: var(--ef-primitive-spacing-2, 0.5rem); }
2968
+ .ef-workspace-shell__primary { grid-area: primary; min-inline-size: 0; }
2969
+ .ef-workspace-shell__inspector { grid-area: inspector; min-inline-size: 0; }
2970
+
2971
+ .ef-navigation-shell {
2972
+ --ef-navigation-width: minmax(11rem, 16rem);
2973
+ --ef-navigation-space: var(--ef-primitive-spacing-4, 1rem);
2974
+ display: grid;
2975
+ grid-template-columns: var(--ef-navigation-width) minmax(0, 1fr);
2976
+ gap: var(--ef-navigation-space);
2977
+ align-items: start;
2978
+ }
2979
+ .ef-navigation-shell__persistent { display: grid; gap: var(--ef-primitive-spacing-2, 0.5rem); }
2980
+ .ef-navigation-shell__compact { display: none; }
2981
+ .ef-navigation-shell__content { min-inline-size: 0; }
2982
+
2983
+ @media (max-width: 48rem) {
2984
+ .ef-workspace-shell {
2985
+ grid-template:
2986
+ "landmark" auto
2987
+ "navigation" auto
2988
+ "primary" auto
2989
+ "inspector" auto
2990
+ / minmax(0, 1fr);
2991
+ }
2992
+ .ef-navigation-shell { grid-template-columns: minmax(0, 1fr); }
2993
+ .ef-navigation-shell__persistent { display: none; }
2994
+ .ef-navigation-shell__compact { display: block; }
2995
+ .ef-navigation-shell__compact nav { display: grid; gap: var(--ef-primitive-spacing-2, 0.5rem); padding-block-start: var(--ef-primitive-spacing-2, 0.5rem); }
2996
+ }
2997
+
2998
+ .ef-active-filter-summary { display:grid; gap:var(--ef-primitive-spacing-2,.5rem); }
2999
+ .ef-active-filter-summary__heading { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-2,.5rem); align-items:center; justify-content:space-between; }
3000
+ .ef-active-filter-summary__heading h2 { margin:0; }
3001
+ .ef-active-filter-summary__items { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-2,.5rem); margin:0; padding:0; list-style:none; }
3002
+ .ef-active-filter-summary__items li { display:flex; gap:var(--ef-primitive-spacing-1,.25rem); align-items:center; }
3003
+
3004
+ .ef-feed-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--ef-primitive-spacing-2,.5rem) var(--ef-primitive-spacing-4,1rem); align-items:start; }
3005
+ .ef-feed-item__primary h2,.ef-feed-item__primary p,.ef-feed-item__summary { margin:0; }
3006
+ .ef-feed-item__meta { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-2,.5rem); align-items:center; justify-content:end; }
3007
+ .ef-feed-item__summary { grid-column:1 / -1; }
3008
+ .ef-feed-item__actions { grid-column:1 / -1; }
3009
+
3010
+ .ef-lane-board { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(min(18rem,85vw),1fr); gap:var(--ef-primitive-spacing-4,1rem); overflow-x:auto; overscroll-behavior-inline:contain; padding-block-end:var(--ef-primitive-spacing-2,.5rem); }
3011
+ .ef-lane-board__lane { display:grid; align-content:start; gap:var(--ef-primitive-spacing-3,.75rem); min-inline-size:0; }
3012
+ .ef-lane-board__header { display:flex; gap:var(--ef-primitive-spacing-2,.5rem); justify-content:space-between; align-items:baseline; }
3013
+ .ef-lane-board__header h2 { margin:0; }
3014
+ .ef-lane-board__items { display:grid; gap:var(--ef-primitive-spacing-2,.5rem); margin:0; padding:0; list-style:none; }
3015
+
3016
+ .ef-spatial-canvas { display:grid; gap:var(--ef-primitive-spacing-3,.75rem); min-inline-size:0; }
3017
+ .ef-spatial-canvas__header { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-3,.75rem); justify-content:space-between; align-items:start; }
3018
+ .ef-spatial-canvas__header h2,.ef-spatial-canvas__orientation { margin:0; }
3019
+ .ef-spatial-canvas__viewport { overflow:auto; max-inline-size:100%; min-block-size:18rem; border:1px solid currentColor; }
3020
+ .ef-spatial-canvas__surface { min-inline-size:48rem; min-block-size:28rem; display:grid; grid-template-columns:repeat(3,minmax(12rem,1fr)); gap:var(--ef-primitive-spacing-6,2rem); padding:var(--ef-primitive-spacing-5,1.5rem); align-content:start; }
3021
+ .ef-spatial-canvas__index nav { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-3,.75rem); padding-block-start:var(--ef-primitive-spacing-2,.5rem); }
3022
+
3023
+ @media (max-width:30rem) {
3024
+ .ef-feed-item { grid-template-columns:minmax(0,1fr); }
3025
+ .ef-feed-item__meta { justify-content:start; }
3026
+ }
3027
+
3028
+ .ef-scope-trail ol { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-1,.25rem) var(--ef-primitive-spacing-2,.5rem); margin:0; padding:0; list-style:none; }
3029
+ .ef-scope-trail li + li::before { content:"/"; margin-inline-end:var(--ef-primitive-spacing-2,.5rem); }
3030
+
3031
+ .ef-evidence-relationship { display:grid; gap:var(--ef-primitive-spacing-3,.75rem); }
3032
+ .ef-evidence-relationship header > :last-child,.ef-evidence-relationship__body > :last-child { margin-block-end:0; }
3033
+ .ef-evidence-relationship__body { display:grid; gap:var(--ef-primitive-spacing-2,.5rem); }
3034
+
3035
+ .ef-freshness { display:flex; flex-wrap:wrap; gap:var(--ef-primitive-spacing-1,.25rem) var(--ef-primitive-spacing-2,.5rem); align-items:baseline; }
3036
+ .ef-freshness__label { font-weight:600; }
3037
+
3038
+ .ef-handoff-summary { display:grid; gap:var(--ef-primitive-spacing-4,1rem); }
3039
+ .ef-handoff-summary dl { display:grid; gap:var(--ef-primitive-spacing-3,.75rem); margin:0; }
3040
+ .ef-handoff-summary dl > div { display:grid; grid-template-columns:minmax(9rem,12rem) minmax(0,1fr); gap:var(--ef-primitive-spacing-3,.75rem); }
3041
+ .ef-handoff-summary dt { font-weight:600; }
3042
+ .ef-handoff-summary dd { margin:0; }
3043
+ @media (max-width:30rem) { .ef-handoff-summary dl > div { grid-template-columns:minmax(0,1fr); gap:var(--ef-primitive-spacing-1,.25rem); } }
3044
+
3045
+
3046
+
3047
+ /* Visual Engineering verification and low-context content ------------- */
3048
+ .ef-identifier,
3049
+ .ef-critical-value {
3050
+ font-family: var(--ef-primitive-font-family-mono, ui-monospace, "SFMono-Regular", Consolas, monospace);
3051
+ font-variant-numeric: tabular-nums slashed-zero;
3052
+ font-feature-settings: "tnum" 1, "zero" 1;
3053
+ letter-spacing: 0.015em;
3054
+ overflow-wrap: anywhere;
3055
+ }
3056
+ .ef-identifier { font-size: 0.9375em; }
3057
+ .ef-critical-value { font-weight: 750; }
3058
+ .ef-critical-value[data-ef-verify="true"] {
3059
+ display: inline-block;
3060
+ padding-inline: 0.25em;
3061
+ border-block-end: 0.15em double currentColor;
3062
+ }
3063
+
3064
+ .ef-verification-frame {
3065
+ display: grid;
3066
+ gap: var(--ef-primitive-spacing-4, 1rem);
3067
+ border: 1px solid var(--ef-color-border-functional, #3a403c);
3068
+ background: var(--ef-color-surface-primary, #f2efe7);
3069
+ }
3070
+ .ef-verification-frame__recognize,
3071
+ .ef-verification-frame__verify,
3072
+ .ef-verification-frame__act {
3073
+ padding: var(--ef-primitive-spacing-4, 1rem);
3074
+ }
3075
+ .ef-verification-frame__recognize {
3076
+ display: grid;
3077
+ gap: var(--ef-primitive-spacing-2, 0.5rem);
3078
+ border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3079
+ }
3080
+ .ef-verification-frame__recognize > :is(h2, h3, p),
3081
+ .ef-verification-frame__verify > :first-child,
3082
+ .ef-verification-frame__act > :first-child { margin-block-start: 0; }
3083
+ .ef-verification-frame__recognize > :last-child,
3084
+ .ef-verification-frame__verify > :last-child,
3085
+ .ef-verification-frame__act > :last-child { margin-block-end: 0; }
3086
+ .ef-verification-frame__verify {
3087
+ display: grid;
3088
+ gap: var(--ef-primitive-spacing-3, 0.75rem);
3089
+ }
3090
+ .ef-verification-frame__facts {
3091
+ display: grid;
3092
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
3093
+ gap: var(--ef-primitive-spacing-3, 0.75rem);
3094
+ margin: 0;
3095
+ }
3096
+ .ef-verification-frame__facts > div {
3097
+ min-inline-size: 0;
3098
+ padding-block: var(--ef-primitive-spacing-2, 0.5rem);
3099
+ border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3100
+ }
3101
+ .ef-verification-frame__facts dt {
3102
+ color: var(--ef-color-text-secondary, #686d68);
3103
+ font-size: 0.75rem;
3104
+ font-weight: 700;
3105
+ }
3106
+ .ef-verification-frame__facts dd { margin: 0.25rem 0 0; }
3107
+ .ef-verification-frame__act {
3108
+ display: flex;
3109
+ flex-wrap: wrap;
3110
+ gap: var(--ef-primitive-spacing-2, 0.5rem);
3111
+ align-items: center;
3112
+ border-block-start: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3113
+ }
3114
+ .ef-verification-frame__act > p { flex: 1 1 18rem; }
3115
+ @media (max-width: 30rem) {
3116
+ .ef-verification-frame__act { align-items: stretch; }
3117
+ .ef-verification-frame__act > :is(button, .ef-button) { inline-size: 100%; }
3118
+ }
3119
+ @media (forced-colors: active) {
3120
+ .ef-critical-value[data-ef-verify="true"],
3121
+ .ef-verification-frame { border-color: CanvasText; }
3122
+ }
3123
+
3124
+ .ef-relationship-index,.ef-path-summary { display:grid; gap:var(--ef-primitive-spacing-3,.75rem); }
3125
+ .ef-relationship-index header > :last-child,.ef-path-summary header > :last-child { margin-block-end:0; }
3126
+ .ef-relationship-index__list { display:grid; gap:var(--ef-primitive-spacing-2,.5rem); margin:0; }
3127
+ .ef-relationship-index__list > div { display:grid; grid-template-columns:minmax(7rem,10rem) minmax(0,1fr); gap:var(--ef-primitive-spacing-3,.75rem); }
3128
+ .ef-relationship-index__list dt { font-weight:600; }
3129
+ .ef-relationship-index__list dd { margin:0; }
3130
+
3131
+ .ef-path-summary__steps { display:grid; gap:var(--ef-primitive-spacing-2,.5rem); margin:0; padding-inline-start:1.5rem; }
3132
+ .ef-path-summary__steps li { padding-inline-start:var(--ef-primitive-spacing-1,.25rem); }
3133
+ .ef-path-summary__steps span { display:block; }
3134
+
3135
+ .ef-hierarchy-tree ul { list-style:none; margin:0; padding-inline-start:var(--ef-primitive-spacing-4,1rem); }
3136
+ .ef-hierarchy-tree > ul { padding-inline-start:0; }
3137
+ .ef-hierarchy-tree li { margin-block:var(--ef-primitive-spacing-1,.25rem); }
3138
+ .ef-hierarchy-tree summary,.ef-hierarchy-tree a { min-block-size:2.75rem; display:flex; align-items:center; }
3139
+ .ef-hierarchy-tree [aria-current="page"] { font-weight:700; }
3140
+
3141
+ @media (max-width:30rem) {
3142
+ .ef-relationship-index__list > div { grid-template-columns:minmax(0,1fr); gap:var(--ef-primitive-spacing-1,.25rem); }
3143
+ .ef-hierarchy-tree ul { padding-inline-start:var(--ef-primitive-spacing-2,.5rem); }
3144
+ }
3145
+
3146
+ /* Composition stress hardening */
3147
+ .ef-navigation-shell__compact > summary { min-block-size:2.75rem; display:flex; align-items:center; cursor:pointer; }
3148
+ .ef-lane-board { max-inline-size:100%; }
3149
+ .ef-lane-board:focus-visible,.ef-comparison-grid:focus-visible,.ef-spatial-canvas__viewport:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
3150
+ .ef-search,.ef-search__control,.ef-active-filter-summary,.ef-active-filter-summary__items,.ef-active-filter-summary__items li { min-inline-size:0; }
3151
+ .ef-search input { min-inline-size:0; max-inline-size:100%; }
3152
+ @media (max-width:30rem) {
3153
+ .ef-search__control { display:grid; grid-template-columns:minmax(0,1fr); }
3154
+ .ef-active-filter-summary__items li { flex-wrap:wrap; }
3155
+ }
3156
+
3157
+ /* Text and target-size resilience from conformance evidence */
3158
+ .ef-overflow-commands > summary {
3159
+ min-block-size:2.75rem;
3160
+ display:flex;
3161
+ align-items:center;
3162
+ cursor:pointer;
3163
+ }
3164
+ .ef-verification-frame,
3165
+ .ef-verification-frame__recognize,
3166
+ .ef-verification-frame__verify,
3167
+ .ef-verification-frame__act,
3168
+ .ef-verification-frame__facts,
3169
+ .ef-verification-frame__facts > div {
3170
+ min-inline-size:0;
3171
+ max-inline-size:100%;
3172
+ }
3173
+ .ef-verification-frame :is(h2,h3,p,dt,dd,button) { overflow-wrap:anywhere; }
3174
+ @media (max-width:30rem) {
3175
+ .ef-verification-frame__act {
3176
+ display:grid;
3177
+ grid-template-columns:minmax(0,1fr);
3178
+ }
3179
+ .ef-verification-frame__act > * {
3180
+ min-inline-size:0;
3181
+ max-inline-size:100%;
3182
+ inline-size:100%;
3183
+ }
3184
+ .ef-verification-frame__act > button {
3185
+ white-space:normal;
3186
+ block-size:auto;
3187
+ min-block-size:2.75rem;
3188
+ }
3189
+ }
3190
+
3191
+
3192
+
3193
+ /* Visual Engineering comparison, overview, and state survivability ----- */
3194
+ .ef-comparison-pairs {
3195
+ display: grid;
3196
+ gap: var(--ef-primitive-spacing-4, 1rem);
3197
+ }
3198
+ .ef-comparison-pairs__item {
3199
+ display: grid;
3200
+ grid-template-columns: minmax(8rem, 0.8fr) repeat(2, minmax(0, 1fr));
3201
+ gap: var(--ef-primitive-spacing-2, 0.5rem) var(--ef-primitive-spacing-4, 1rem);
3202
+ padding-block: var(--ef-primitive-spacing-3, 0.75rem);
3203
+ border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3204
+ }
3205
+ .ef-comparison-pairs__label { font-weight: 700; }
3206
+ .ef-comparison-pairs__value { min-inline-size: 0; overflow-wrap: anywhere; }
3207
+ .ef-comparison-pairs__value::before {
3208
+ display: block;
3209
+ margin-block-end: 0.2rem;
3210
+ color: var(--ef-color-text-secondary, #686d68);
3211
+ font-size: 0.75rem;
3212
+ font-weight: 700;
3213
+ }
3214
+ .ef-comparison-pairs__value[data-side="before"]::before { content: attr(data-label); }
3215
+ .ef-comparison-pairs__value[data-side="after"]::before { content: attr(data-label); }
3216
+
3217
+ .ef-overview-disclosure {
3218
+ display: grid;
3219
+ gap: var(--ef-primitive-spacing-3, 0.75rem);
3220
+ }
3221
+ .ef-overview-disclosure__overview {
3222
+ display: grid;
3223
+ gap: var(--ef-primitive-spacing-2, 0.5rem);
3224
+ padding: var(--ef-primitive-spacing-3, 0.75rem);
3225
+ border-inline-start: 0.25rem solid currentColor;
3226
+ }
3227
+ .ef-overview-disclosure__overview > :first-child,
3228
+ .ef-overview-disclosure__overview > :last-child { margin-block: 0; }
3229
+
3230
+ .ef-state-survivability {
3231
+ display: grid;
3232
+ gap: var(--ef-primitive-spacing-3, 0.75rem);
3233
+ }
3234
+ .ef-state-survivability__state {
3235
+ display: grid;
3236
+ grid-template-columns: minmax(8rem, auto) minmax(0, 1fr);
3237
+ gap: var(--ef-primitive-spacing-3, 0.75rem);
3238
+ align-items: start;
3239
+ padding-block: var(--ef-primitive-spacing-2, 0.5rem);
3240
+ border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3241
+ }
3242
+ .ef-state-survivability__state p { margin: 0; }
3243
+
3244
+ @media (max-width: 30rem) {
3245
+ .ef-comparison-pairs__item,
3246
+ .ef-state-survivability__state {
3247
+ grid-template-columns: minmax(0, 1fr);
3248
+ }
3249
+ }
3250
+
3251
+
3252
+
3253
+ /* Visual Engineering attention-path composition ------------------------ */
3254
+ .ef-attention-path {
3255
+ display: grid;
3256
+ gap: var(--ef-primitive-spacing-4, 1rem);
3257
+ }
3258
+ .ef-attention-path__primary {
3259
+ display: grid;
3260
+ gap: var(--ef-primitive-spacing-2, 0.5rem);
3261
+ padding: var(--ef-primitive-spacing-4, 1rem);
3262
+ border: 2px solid var(--ef-color-border-functional, #3a403c);
3263
+ background: var(--ef-color-surface-primary, #f2efe7);
3264
+ }
3265
+ .ef-attention-path__primary > :first-child,
3266
+ .ef-attention-path__primary > :last-child { margin-block: 0; }
3267
+ .ef-attention-path__support {
3268
+ display: grid;
3269
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
3270
+ gap: var(--ef-primitive-spacing-4, 1rem);
3271
+ }
3272
+ .ef-attention-path__support > * {
3273
+ min-inline-size: 0;
3274
+ padding: var(--ef-primitive-spacing-3, 0.75rem);
3275
+ border-block-start: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3276
+ }
3277
+ .ef-attention-path [data-attention-step] {
3278
+ position: relative;
3279
+ }
3280
+ .ef-attention-path [data-attention-step]::before {
3281
+ content: "Priority " attr(data-attention-step);
3282
+ display: block;
3283
+ margin-block-end: 0.35rem;
3284
+ color: var(--ef-color-text-secondary, #686d68);
3285
+ font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
3286
+ font-size: 0.6875rem;
3287
+ font-weight: 700;
3288
+ letter-spacing: 0.04em;
3289
+ text-transform: uppercase;
3290
+ }
3291
+ @media (forced-colors: active) {
3292
+ .ef-attention-path__primary { border-color: CanvasText; background: Canvas; color: CanvasText; }
3293
+ .ef-attention-path__support > * { border-color: CanvasText; }
3294
+ }
3295
+
3296
+ /* Attention and spatial resilience from conformance evidence */
3297
+ .ef-spatial-canvas__index > summary {
3298
+ min-block-size:2.75rem;
3299
+ display:flex;
3300
+ align-items:center;
3301
+ cursor:pointer;
3302
+ }
3303
+ .ef-attention-path,
3304
+ .ef-attention-path > *,
3305
+ .ef-attention-path__primary,
3306
+ .ef-attention-path__support,
3307
+ .ef-attention-path__support > * {
3308
+ min-inline-size:0;
3309
+ max-inline-size:100%;
3310
+ }
3311
+ .ef-attention-path :is(h2,h3,p,button,.ef-status-lozenge) { overflow-wrap:anywhere; }
3312
+ @media (max-width:30rem) {
3313
+ .ef-attention-path__primary .ef-cluster {
3314
+ display:grid;
3315
+ grid-template-columns:minmax(0,1fr);
3316
+ }
3317
+ .ef-attention-path__primary .ef-cluster > button {
3318
+ inline-size:100%;
3319
+ min-inline-size:0;
3320
+ white-space:normal;
3321
+ block-size:auto;
3322
+ min-block-size:2.75rem;
3323
+ }
3324
+ }
3325
+
3326
+ /* Attention-path extreme text-spacing resilience */
3327
+ .ef-attention-path .ef-status-lozenge {
3328
+ min-inline-size:0;
3329
+ max-inline-size:100%;
3330
+ }
3331
+ @media (max-width:30rem) {
3332
+ .ef-attention-path .ef-status-lozenge {
3333
+ white-space:normal;
3334
+ inline-size:fit-content;
3335
+ }
3336
+ }
3337
+
3338
+
3339
+
3340
+ /* Visual Engineering emphasis-budget composition ----------------------- */
3341
+ .ef-emphasis-budget {
3342
+ display: grid;
3343
+ gap: var(--ef-primitive-spacing-4, 1rem);
3344
+ }
3345
+ .ef-emphasis-budget [data-emphasis] {
3346
+ min-inline-size: 0;
3347
+ overflow-wrap: anywhere;
3348
+ }
3349
+ .ef-emphasis-budget [data-emphasis="primary"] {
3350
+ padding: var(--ef-primitive-spacing-4, 1rem);
3351
+ border: 2px solid var(--ef-color-border-functional, #3a403c);
3352
+ background: var(--ef-color-surface-primary, #f2efe7);
3353
+ }
3354
+ .ef-emphasis-budget [data-emphasis="secondary"] {
3355
+ padding: var(--ef-primitive-spacing-3, 0.75rem);
3356
+ border-inline-start: 0.2rem solid var(--ef-color-border-functional, #3a403c);
3357
+ }
3358
+ .ef-emphasis-budget [data-emphasis="supporting"] {
3359
+ padding-block: var(--ef-primitive-spacing-2, 0.5rem);
3360
+ border-block-start: 1px solid var(--ef-color-border-subtle, #e3e0d7);
3361
+ }
3362
+ .ef-emphasis-budget [data-emphasis]::before {
3363
+ display: block;
3364
+ margin-block-end: 0.3rem;
3365
+ color: var(--ef-color-text-secondary, #686d68);
3366
+ font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
3367
+ font-size: 0.6875rem;
3368
+ font-weight: 700;
3369
+ letter-spacing: 0.04em;
3370
+ text-transform: uppercase;
3371
+ }
3372
+ .ef-emphasis-budget [data-emphasis="primary"]::before { content: "Primary"; }
3373
+ .ef-emphasis-budget [data-emphasis="secondary"]::before { content: "Secondary"; }
3374
+ .ef-emphasis-budget [data-emphasis="supporting"]::before { content: "Supporting"; }
3375
+ .ef-emphasis-budget__support {
3376
+ display: grid;
3377
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
3378
+ gap: var(--ef-primitive-spacing-4, 1rem);
3379
+ }
3380
+ @media (forced-colors: active) {
3381
+ .ef-emphasis-budget [data-emphasis="primary"],
3382
+ .ef-emphasis-budget [data-emphasis="secondary"],
3383
+ .ef-emphasis-budget [data-emphasis="supporting"] {
3384
+ border-color: CanvasText;
3385
+ background: Canvas;
3386
+ color: CanvasText;
3387
+ }
3388
+ }
3389
+
3390
+ /* Emphasis-budget extreme text resilience */
3391
+ .ef-emphasis-budget,
3392
+ .ef-emphasis-budget > *,
3393
+ .ef-emphasis-budget__support,
3394
+ .ef-emphasis-budget__support > * {
3395
+ min-inline-size:0;
3396
+ max-inline-size:100%;
3397
+ }
3398
+ .ef-emphasis-budget .ef-status-lozenge {
3399
+ min-inline-size:0;
3400
+ max-inline-size:100%;
3401
+ }
3402
+ @media (max-width:30rem) {
3403
+ .ef-emphasis-budget .ef-status-lozenge {
3404
+ white-space:normal;
3405
+ inline-size:fit-content;
3406
+ }
3407
+ .ef-emphasis-budget [data-emphasis="primary"] > button {
3408
+ min-inline-size:0;
3409
+ max-inline-size:100%;
3410
+ white-space:normal;
3411
+ block-size:auto;
3412
+ min-block-size:2.75rem;
3413
+ }
3414
+ }
3415
+
2739
3416
  }
2740
3417
 
2741
3418
  @layer echelon.assessment {