@symerian/symi 3.5.29 → 3.5.31
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.
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
- package/dist/control-ui/css/style.css +566 -299
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/extensionAPI.js +4 -4
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{manager-DogrTmEo.js → manager-NDn8AFhr.js} +1 -1
- package/dist/{manager-DM2oPS8M.js → manager-fgUC_sHR.js} +1 -1
- package/dist/{pi-embedded-DdoLFoXg.js → pi-embedded-V-5MAZNb.js} +10 -10
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{synthesis-Cggd0_wq.js → synthesis-BfVWACNx.js} +4 -4
- package/dist/{synthesis-Bfhs-a4F.js → synthesis-D6pnRAxI.js} +4 -4
- package/dist/{unified-runner-C7BRCFJF.js → unified-runner-H3Qh_NZO.js} +10 -10
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
|
@@ -853,47 +853,189 @@ body {
|
|
|
853
853
|
the now-removed reasoning panel up into the header row, where it
|
|
854
854
|
still pulses on agent activity (app.js:840-845 untouched, single id
|
|
855
855
|
continues to bind that semantic). */
|
|
856
|
-
/* Stage C.4 (3.5.25)
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
856
|
+
/* Stage C.4 (3.5.25) + Stage D.3 (3.5.30) revision: the symframe is
|
|
857
|
+
a grid container (rows: header / stack / footer) sized to fill its
|
|
858
|
+
metrics-col flex parent. The two key sizing primitives:
|
|
859
|
+
- flex: 1 1 0 + min-height: 0 on the symframe itself ensures the
|
|
860
|
+
grid container has a *definite* height inside the flex column
|
|
861
|
+
parent. Without this, `height: 100%` was unreliable across
|
|
862
|
+
browsers + modes (modes 2-4 overflow report from 3.5.29).
|
|
863
|
+
- minmax(0, 1fr) on the flex middle row (instead of plain 1fr)
|
|
864
|
+
explicitly allows the row to shrink below its content size,
|
|
865
|
+
which lets the substrate / cards container's overflow-y: auto
|
|
866
|
+
reliably engage instead of pushing the parent.
|
|
867
|
+
Combined: every mode reliably bounds to the column. */
|
|
868
|
+
/* ── Symframe Design Tokens (Option 1 — 3.5.31) ─────────────────────────
|
|
869
|
+
Exhaustive token set extracted from existing symframe CSS — every literal
|
|
870
|
+
value used in the symframe surface has been replaced with a var(--sf-*)
|
|
871
|
+
reference. Visual identity preserved exactly. Token names are numeric
|
|
872
|
+
(--sf-cyan-12) rather than semantic (--sf-cyan-border); semantic naming +
|
|
873
|
+
tier consolidation happens in Option 3 (visual harmonization).
|
|
874
|
+
|
|
875
|
+
Defined at :root so the tokens are inherited by every selector in the
|
|
876
|
+
symframe surface without scoping concerns. Future selectors elsewhere
|
|
877
|
+
in the codebase will see the tokens but won't accidentally use them.
|
|
878
|
+
*/
|
|
879
|
+
:root {
|
|
880
|
+
/* ── Cyan accent opacities (15 distinct tiers from existing usage) ── */
|
|
881
|
+
--sf-cyan-04: rgba(0, 212, 255, 0.04);
|
|
882
|
+
--sf-cyan-05: rgba(0, 212, 255, 0.05);
|
|
883
|
+
--sf-cyan-06: rgba(0, 212, 255, 0.06);
|
|
884
|
+
--sf-cyan-08: rgba(0, 212, 255, 0.08);
|
|
885
|
+
--sf-cyan-10: rgba(0, 212, 255, 0.1);
|
|
886
|
+
--sf-cyan-12: rgba(0, 212, 255, 0.12);
|
|
887
|
+
--sf-cyan-14: rgba(0, 212, 255, 0.14);
|
|
888
|
+
--sf-cyan-15: rgba(0, 212, 255, 0.15);
|
|
889
|
+
--sf-cyan-18: rgba(0, 212, 255, 0.18);
|
|
890
|
+
--sf-cyan-20: rgba(0, 212, 255, 0.2);
|
|
891
|
+
--sf-cyan-25: rgba(0, 212, 255, 0.25);
|
|
892
|
+
--sf-cyan-32: rgba(0, 212, 255, 0.32);
|
|
893
|
+
--sf-cyan-35: rgba(0, 212, 255, 0.35);
|
|
894
|
+
--sf-cyan-45: rgba(0, 212, 255, 0.45);
|
|
895
|
+
--sf-cyan-50: rgba(0, 212, 255, 0.5);
|
|
896
|
+
--sf-cyan-55: rgba(0, 212, 255, 0.55);
|
|
897
|
+
--sf-cyan-60: rgba(0, 212, 255, 0.6);
|
|
898
|
+
--sf-cyan-65: rgba(0, 212, 255, 0.65);
|
|
899
|
+
|
|
900
|
+
/* ── White opacity tiers ── */
|
|
901
|
+
--sf-white-02: rgba(255, 255, 255, 0.02);
|
|
902
|
+
--sf-white-03: rgba(255, 255, 255, 0.03);
|
|
903
|
+
--sf-white-04: rgba(255, 255, 255, 0.04);
|
|
904
|
+
--sf-white-05: rgba(255, 255, 255, 0.05);
|
|
905
|
+
--sf-white-06: rgba(255, 255, 255, 0.06);
|
|
906
|
+
--sf-white-08: rgba(255, 255, 255, 0.08);
|
|
907
|
+
--sf-white-09: rgba(255, 255, 255, 0.09);
|
|
908
|
+
--sf-white-10: rgba(255, 255, 255, 0.1);
|
|
909
|
+
--sf-white-12: rgba(255, 255, 255, 0.12);
|
|
910
|
+
|
|
911
|
+
/* ── Black opacity tiers (shadows + dark fills) ── */
|
|
912
|
+
--sf-black-15: rgba(0, 0, 0, 0.15);
|
|
913
|
+
--sf-black-20: rgba(0, 0, 0, 0.2);
|
|
914
|
+
--sf-black-25: rgba(0, 0, 0, 0.25);
|
|
915
|
+
--sf-black-30: rgba(0, 0, 0, 0.3);
|
|
916
|
+
--sf-black-35: rgba(0, 0, 0, 0.35);
|
|
917
|
+
--sf-black-40: rgba(0, 0, 0, 0.4);
|
|
918
|
+
--sf-black-55: rgba(0, 0, 0, 0.55);
|
|
919
|
+
|
|
920
|
+
/* ── Surface fills (dark blue-tinted glass) ── */
|
|
921
|
+
--sf-surface-card: rgba(10, 16, 26, 0.62);
|
|
922
|
+
--sf-surface-menu: rgba(10, 16, 26, 0.95);
|
|
923
|
+
|
|
924
|
+
/* ── Intent palette (Stage D.1 — used by intent stripes, considering
|
|
925
|
+
button, AWAITING flag, producing pulse, and the substrate badges
|
|
926
|
+
that mirror these colors) ── */
|
|
927
|
+
/* amber — weighing intent + considering button */
|
|
928
|
+
--sf-amber-12: rgba(245, 183, 58, 0.12);
|
|
929
|
+
--sf-amber-32: rgba(245, 183, 58, 0.32);
|
|
930
|
+
/* pink — awaiting flag + considering-empty + panel-ref-miss pulse */
|
|
931
|
+
--sf-pink-10: rgba(244, 114, 182, 0.1);
|
|
932
|
+
--sf-pink-22: rgba(244, 114, 182, 0.22);
|
|
933
|
+
--sf-pink-55: rgba(244, 114, 182, 0.55);
|
|
934
|
+
--sf-pink-60: rgba(244, 114, 182, 0.6);
|
|
935
|
+
--sf-pink-85: rgba(244, 114, 182, 0.85);
|
|
936
|
+
/* green — producing intent + result reasoning badge */
|
|
937
|
+
--sf-green-10: rgba(52, 211, 153, 0.1);
|
|
938
|
+
--sf-green-18: rgba(52, 211, 153, 0.18);
|
|
939
|
+
--sf-green-20: rgba(52, 211, 153, 0.2);
|
|
940
|
+
--sf-green-55: rgba(52, 211, 153, 0.55);
|
|
941
|
+
--sf-green-75: rgba(52, 211, 153, 0.75);
|
|
942
|
+
--sf-green-100: rgba(52, 211, 153, 1);
|
|
943
|
+
/* violet — drafted intent + tool reasoning badge */
|
|
944
|
+
--sf-violet-12: rgba(139, 92, 246, 0.12);
|
|
945
|
+
--sf-violet-20: rgba(139, 92, 246, 0.2);
|
|
946
|
+
--sf-violet-22: rgba(139, 92, 246, 0.22);
|
|
947
|
+
--sf-violet-25: rgba(139, 92, 246, 0.25);
|
|
948
|
+
--sf-violet-32: rgba(139, 92, 246, 0.32);
|
|
949
|
+
--sf-violet-55: rgba(139, 92, 246, 0.55);
|
|
950
|
+
|
|
951
|
+
/* ── Padding / gap / margin values (px) ── */
|
|
952
|
+
--sf-pad-2: 2px;
|
|
953
|
+
--sf-pad-4: 4px;
|
|
954
|
+
--sf-pad-5: 5px;
|
|
955
|
+
--sf-pad-6: 6px;
|
|
956
|
+
--sf-pad-8: 8px;
|
|
957
|
+
--sf-pad-10: 10px;
|
|
958
|
+
--sf-pad-12: 12px;
|
|
959
|
+
|
|
960
|
+
/* ── Font sizes (px) ── */
|
|
961
|
+
--sf-text-8: 8px;
|
|
962
|
+
--sf-text-9: 9px;
|
|
963
|
+
--sf-text-10: 10px;
|
|
964
|
+
--sf-text-11: 11px;
|
|
965
|
+
--sf-text-12: 12px;
|
|
966
|
+
--sf-text-13: 13px;
|
|
967
|
+
--sf-text-16: 16px;
|
|
968
|
+
|
|
969
|
+
/* ── Border-radius (px / %) ── */
|
|
970
|
+
--sf-radius-2: 2px;
|
|
971
|
+
--sf-radius-3: 3px;
|
|
972
|
+
--sf-radius-4: 4px;
|
|
973
|
+
--sf-radius-5: 5px;
|
|
974
|
+
--sf-radius-6: 6px;
|
|
975
|
+
--sf-radius-8: 8px;
|
|
976
|
+
--sf-radius-10: 10px;
|
|
977
|
+
--sf-radius-pill: 50%;
|
|
978
|
+
|
|
979
|
+
/* ── Content bounds (height limits) ── */
|
|
980
|
+
--sf-bound-row: 38px;
|
|
981
|
+
--sf-bound-tool: 100px;
|
|
982
|
+
--sf-bound-detail: 120px;
|
|
983
|
+
--sf-bound-list: 200px;
|
|
984
|
+
--sf-bound-media: 280px;
|
|
985
|
+
--sf-bound-body: 320px;
|
|
986
|
+
|
|
987
|
+
/* ── Motion durations ── */
|
|
988
|
+
--sf-time-fast: 0.15s;
|
|
989
|
+
--sf-time-quick: 0.2s;
|
|
990
|
+
--sf-time-200ms: 200ms;
|
|
991
|
+
--sf-time-slow: 0.3s;
|
|
992
|
+
--sf-time-normal: 0.4s;
|
|
993
|
+
--sf-time-medium: 0.5s;
|
|
994
|
+
--sf-time-soft: 0.6s;
|
|
995
|
+
--sf-time-600ms: 600ms;
|
|
996
|
+
--sf-time-easy: 0.8s;
|
|
997
|
+
--sf-time-800ms: 800ms;
|
|
998
|
+
--sf-time-1s: 1s;
|
|
999
|
+
--sf-time-pulse: 1.2s;
|
|
1000
|
+
--sf-time-pulse-prod: 2.6s;
|
|
1001
|
+
--sf-time-pulse-quiet: 3.2s;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
868
1004
|
.symframe {
|
|
869
1005
|
display: grid;
|
|
870
|
-
grid-template-rows: auto 1fr auto;
|
|
871
|
-
gap:
|
|
872
|
-
|
|
1006
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
1007
|
+
gap: var(--sf-pad-8);
|
|
1008
|
+
|
|
1009
|
+
flex: 1 1 0;
|
|
1010
|
+
min-height: 0;
|
|
873
1011
|
overflow: hidden;
|
|
874
1012
|
}
|
|
875
1013
|
.symframe-header {
|
|
876
|
-
padding:
|
|
877
|
-
|
|
878
|
-
|
|
1014
|
+
padding: var(--sf-pad-8) var(--sf-pad-10) var(--sf-pad-10);
|
|
1015
|
+
|
|
1016
|
+
border-bottom: 1px solid var(--sf-cyan-12);
|
|
1017
|
+
margin-bottom: var(--sf-pad-4);
|
|
1018
|
+
|
|
879
1019
|
min-height: 0;
|
|
880
1020
|
}
|
|
881
1021
|
.symframe-header-row {
|
|
882
1022
|
display: flex;
|
|
883
1023
|
align-items: baseline;
|
|
884
1024
|
justify-content: space-between;
|
|
885
|
-
gap:
|
|
1025
|
+
gap: var(--sf-pad-10);
|
|
886
1026
|
}
|
|
887
1027
|
.symframe-title {
|
|
888
1028
|
font-family: var(--font-mono);
|
|
889
|
-
font-size:
|
|
1029
|
+
font-size: var(--sf-text-12);
|
|
1030
|
+
|
|
890
1031
|
font-weight: 600;
|
|
891
1032
|
letter-spacing: 0.14em;
|
|
892
1033
|
color: var(--accent-cyan);
|
|
893
1034
|
}
|
|
894
1035
|
.symframe-count {
|
|
895
1036
|
font-family: var(--font-mono);
|
|
896
|
-
font-size:
|
|
1037
|
+
font-size: var(--sf-text-9);
|
|
1038
|
+
|
|
897
1039
|
letter-spacing: 0.06em;
|
|
898
1040
|
color: var(--text-dim);
|
|
899
1041
|
opacity: 0.7;
|
|
@@ -901,11 +1043,13 @@ body {
|
|
|
901
1043
|
}
|
|
902
1044
|
.symframe-sub {
|
|
903
1045
|
font-family: var(--font-mono);
|
|
904
|
-
font-size:
|
|
1046
|
+
font-size: var(--sf-text-9);
|
|
1047
|
+
|
|
905
1048
|
letter-spacing: 0.04em;
|
|
906
1049
|
color: var(--text-dim);
|
|
907
1050
|
opacity: 0.55;
|
|
908
|
-
margin-top:
|
|
1051
|
+
margin-top: var(--sf-pad-4);
|
|
1052
|
+
|
|
909
1053
|
line-height: 1.4;
|
|
910
1054
|
}
|
|
911
1055
|
|
|
@@ -913,14 +1057,16 @@ body {
|
|
|
913
1057
|
.symframe-modes {
|
|
914
1058
|
display: flex;
|
|
915
1059
|
align-items: center;
|
|
916
|
-
gap:
|
|
917
|
-
|
|
1060
|
+
gap: var(--sf-pad-6);
|
|
1061
|
+
|
|
1062
|
+
margin-top: var(--sf-pad-6);
|
|
918
1063
|
}
|
|
919
1064
|
.mode-chip {
|
|
920
1065
|
width: 10px;
|
|
921
1066
|
height: 10px;
|
|
922
|
-
border-radius:
|
|
923
|
-
|
|
1067
|
+
border-radius: var(--sf-radius-pill);
|
|
1068
|
+
|
|
1069
|
+
border: 1px solid var(--sf-cyan-32);
|
|
924
1070
|
background: transparent;
|
|
925
1071
|
padding: 0;
|
|
926
1072
|
cursor: pointer;
|
|
@@ -932,32 +1078,35 @@ body {
|
|
|
932
1078
|
}
|
|
933
1079
|
.mode-chip:hover {
|
|
934
1080
|
border-color: var(--accent-cyan);
|
|
935
|
-
background:
|
|
1081
|
+
background: var(--sf-cyan-15);
|
|
936
1082
|
transform: scale(1.15);
|
|
937
1083
|
}
|
|
938
1084
|
.mode-chip.active {
|
|
939
1085
|
background: var(--accent-cyan);
|
|
940
1086
|
border-color: var(--accent-cyan);
|
|
941
|
-
box-shadow: 0 0 6px
|
|
1087
|
+
box-shadow: 0 0 6px var(--sf-cyan-50);
|
|
942
1088
|
}
|
|
943
1089
|
.mode-auto {
|
|
944
1090
|
margin-left: auto;
|
|
945
|
-
padding:
|
|
1091
|
+
padding: var(--sf-pad-2) var(--sf-pad-8);
|
|
1092
|
+
|
|
946
1093
|
font-family: var(--font-mono);
|
|
947
|
-
font-size:
|
|
1094
|
+
font-size: var(--sf-text-8);
|
|
1095
|
+
|
|
948
1096
|
font-weight: 700;
|
|
949
1097
|
letter-spacing: 0.12em;
|
|
950
1098
|
color: var(--accent-cyan);
|
|
951
|
-
background:
|
|
952
|
-
border: 1px solid
|
|
953
|
-
border-radius:
|
|
1099
|
+
background: var(--sf-cyan-08);
|
|
1100
|
+
border: 1px solid var(--sf-cyan-32);
|
|
1101
|
+
border-radius: var(--sf-radius-8);
|
|
1102
|
+
|
|
954
1103
|
cursor: pointer;
|
|
955
1104
|
transition:
|
|
956
1105
|
background 0.15s ease,
|
|
957
1106
|
color 0.15s ease;
|
|
958
1107
|
}
|
|
959
1108
|
.mode-auto:hover {
|
|
960
|
-
background:
|
|
1109
|
+
background: var(--sf-cyan-20);
|
|
961
1110
|
color: var(--text);
|
|
962
1111
|
}
|
|
963
1112
|
|
|
@@ -966,15 +1115,19 @@ body {
|
|
|
966
1115
|
AND adds .considering-weighing to #symframe (CSS below) which dims
|
|
967
1116
|
non-weighing cards for the duration. */
|
|
968
1117
|
.considering-btn {
|
|
969
|
-
margin-left:
|
|
970
|
-
|
|
971
|
-
|
|
1118
|
+
margin-left: var(--sf-pad-4);
|
|
1119
|
+
|
|
1120
|
+
padding: var(--sf-pad-2) 7px;
|
|
1121
|
+
|
|
1122
|
+
font-size: var(--sf-text-11);
|
|
1123
|
+
|
|
972
1124
|
line-height: 1;
|
|
973
1125
|
font-family: var(--font-mono);
|
|
974
1126
|
color: #f5b73a; /* amber — same hue as weighing intent */
|
|
975
1127
|
background: transparent;
|
|
976
|
-
border: 1px solid
|
|
977
|
-
border-radius:
|
|
1128
|
+
border: 1px solid var(--sf-amber-32);
|
|
1129
|
+
border-radius: var(--sf-radius-8);
|
|
1130
|
+
|
|
978
1131
|
cursor: pointer;
|
|
979
1132
|
transition:
|
|
980
1133
|
background 0.15s ease,
|
|
@@ -982,7 +1135,7 @@ body {
|
|
|
982
1135
|
transform 0.15s ease;
|
|
983
1136
|
}
|
|
984
1137
|
.considering-btn:hover {
|
|
985
|
-
background:
|
|
1138
|
+
background: var(--sf-amber-12);
|
|
986
1139
|
border-color: #f5b73a;
|
|
987
1140
|
}
|
|
988
1141
|
.considering-btn:active {
|
|
@@ -991,16 +1144,16 @@ body {
|
|
|
991
1144
|
/* Brief red flash when clicked while no weighing cards exist —
|
|
992
1145
|
tells the user "I have nothing to surface here." */
|
|
993
1146
|
.considering-btn.considering-empty {
|
|
994
|
-
animation: considering-empty-pulse
|
|
1147
|
+
animation: considering-empty-pulse var(--sf-time-easy) ease-out;
|
|
995
1148
|
}
|
|
996
1149
|
@keyframes considering-empty-pulse {
|
|
997
1150
|
0%,
|
|
998
1151
|
100% {
|
|
999
|
-
border-color:
|
|
1152
|
+
border-color: var(--sf-amber-32);
|
|
1000
1153
|
}
|
|
1001
1154
|
50% {
|
|
1002
|
-
border-color:
|
|
1003
|
-
background:
|
|
1155
|
+
border-color: var(--sf-pink-60);
|
|
1156
|
+
background: var(--sf-pink-10);
|
|
1004
1157
|
}
|
|
1005
1158
|
}
|
|
1006
1159
|
/* While considering-weighing is active, dim non-weighing cards so the
|
|
@@ -1014,14 +1167,15 @@ body {
|
|
|
1014
1167
|
}
|
|
1015
1168
|
.symframe.considering-weighing .symframe-substrate {
|
|
1016
1169
|
opacity: 0.45;
|
|
1017
|
-
transition: opacity
|
|
1170
|
+
transition: opacity var(--sf-time-normal) ease;
|
|
1018
1171
|
}
|
|
1019
1172
|
@media (prefers-reduced-motion: reduce) {
|
|
1020
1173
|
.considering-btn.considering-empty {
|
|
1021
1174
|
animation: none;
|
|
1022
1175
|
}
|
|
1023
1176
|
.symframe.considering-weighing .symframe-card-dynamic:not([data-intent="weighing"]) {
|
|
1024
|
-
transition: opacity
|
|
1177
|
+
transition: opacity var(--sf-time-quick) ease;
|
|
1178
|
+
|
|
1025
1179
|
filter: none;
|
|
1026
1180
|
}
|
|
1027
1181
|
}
|
|
@@ -1037,8 +1191,10 @@ body {
|
|
|
1037
1191
|
border-bottom: 1px dashed currentColor;
|
|
1038
1192
|
cursor: pointer;
|
|
1039
1193
|
font-weight: 500;
|
|
1040
|
-
padding: 0
|
|
1041
|
-
|
|
1194
|
+
padding: 0 var(--sf-pad-2);
|
|
1195
|
+
|
|
1196
|
+
border-radius: var(--sf-radius-3);
|
|
1197
|
+
|
|
1042
1198
|
transition:
|
|
1043
1199
|
background 0.15s ease,
|
|
1044
1200
|
border-bottom-style 0.15s ease;
|
|
@@ -1049,7 +1205,7 @@ body {
|
|
|
1049
1205
|
opacity: 0.7;
|
|
1050
1206
|
}
|
|
1051
1207
|
.panel-ref:hover {
|
|
1052
|
-
background:
|
|
1208
|
+
background: var(--sf-cyan-12);
|
|
1053
1209
|
border-bottom-style: solid;
|
|
1054
1210
|
}
|
|
1055
1211
|
/* Orphan reference — the card is no longer in the panel. Subdued so
|
|
@@ -1064,15 +1220,15 @@ body {
|
|
|
1064
1220
|
/* Click-miss flash: a brief pink tint signals "I tried to dwell but
|
|
1065
1221
|
that card isn't currently registered." */
|
|
1066
1222
|
.panel-ref.panel-ref-miss {
|
|
1067
|
-
animation: panel-ref-miss-pulse 1s ease-out;
|
|
1223
|
+
animation: panel-ref-miss-pulse var(--sf-time-1s) ease-out;
|
|
1068
1224
|
}
|
|
1069
1225
|
@keyframes panel-ref-miss-pulse {
|
|
1070
1226
|
0%,
|
|
1071
1227
|
100% {
|
|
1072
|
-
background:
|
|
1228
|
+
background: var(--sf-cyan-12);
|
|
1073
1229
|
}
|
|
1074
1230
|
50% {
|
|
1075
|
-
background:
|
|
1231
|
+
background: var(--sf-pink-22);
|
|
1076
1232
|
}
|
|
1077
1233
|
}
|
|
1078
1234
|
|
|
@@ -1084,7 +1240,10 @@ body {
|
|
|
1084
1240
|
foreground card takes the visual stage. If a focusedId is set, the
|
|
1085
1241
|
matching card gets a cyan halo + others fade out. */
|
|
1086
1242
|
.symframe[data-mode="focus"] {
|
|
1087
|
-
|
|
1243
|
+
/* Stage D.3: minmax(0, 1fr) so the middle row can shrink below
|
|
1244
|
+
content size and the cards container's overflow-y: auto engages
|
|
1245
|
+
instead of expanding the row. */
|
|
1246
|
+
grid-template-rows: auto minmax(0, 1fr) 0;
|
|
1088
1247
|
}
|
|
1089
1248
|
.symframe[data-mode="focus"] .symframe-awaiting {
|
|
1090
1249
|
display: none;
|
|
@@ -1100,7 +1259,7 @@ body {
|
|
|
1100
1259
|
/* When focusedId is set, dim non-matching cards. */
|
|
1101
1260
|
.symframe[data-mode="focus"][data-focus-id] .symframe-card-dynamic {
|
|
1102
1261
|
opacity: 0.25;
|
|
1103
|
-
transition: opacity
|
|
1262
|
+
transition: opacity var(--sf-time-normal) ease;
|
|
1104
1263
|
}
|
|
1105
1264
|
.symframe[data-mode="focus"][data-focus-id] .symframe-card-dynamic:hover {
|
|
1106
1265
|
opacity: 0.6;
|
|
@@ -1117,9 +1276,9 @@ body {
|
|
|
1117
1276
|
plenty of focus signal on their own. */
|
|
1118
1277
|
opacity: 1 !important;
|
|
1119
1278
|
box-shadow:
|
|
1120
|
-
0 0 24px
|
|
1121
|
-
inset 0 1px 0
|
|
1122
|
-
0 4px 12px
|
|
1279
|
+
0 0 24px var(--sf-cyan-35),
|
|
1280
|
+
inset 0 1px 0 var(--sf-white-06),
|
|
1281
|
+
0 4px 12px var(--sf-black-25);
|
|
1123
1282
|
border-color: var(--accent-cyan) !important;
|
|
1124
1283
|
transition:
|
|
1125
1284
|
box-shadow 0.4s ease,
|
|
@@ -1144,13 +1303,19 @@ body {
|
|
|
1144
1303
|
scrolls internally when its content exceeds the now-larger footer.
|
|
1145
1304
|
*/
|
|
1146
1305
|
.symframe[data-mode="awaiting"] {
|
|
1147
|
-
|
|
1306
|
+
/* Stage D.3: minmax(0, 1fr) on substrate so it can shrink (and
|
|
1307
|
+
scroll internally) when awaiting takes most of the column.
|
|
1308
|
+
`auto` on the footer row + max-height: 80% on .symframe-awaiting
|
|
1309
|
+
bounds it; `overflow: hidden` on the footer clips any overflow
|
|
1310
|
+
from its inner list (which has its own overflow-y: auto). */
|
|
1311
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
1148
1312
|
}
|
|
1149
1313
|
.symframe[data-mode="awaiting"] .symframe-substrate {
|
|
1150
1314
|
opacity: 0.35;
|
|
1151
1315
|
}
|
|
1152
1316
|
.symframe[data-mode="awaiting"] .symframe-card-dynamic {
|
|
1153
|
-
max-height:
|
|
1317
|
+
max-height: var(--sf-bound-row);
|
|
1318
|
+
|
|
1154
1319
|
overflow: hidden;
|
|
1155
1320
|
transition:
|
|
1156
1321
|
max-height 0.4s ease,
|
|
@@ -1165,9 +1330,10 @@ body {
|
|
|
1165
1330
|
"dominant" without exceeding the column. The `overflow: hidden`
|
|
1166
1331
|
from C.4 still clips any overflow from misbehaving children. */
|
|
1167
1332
|
max-height: 80%;
|
|
1168
|
-
background:
|
|
1169
|
-
border-radius:
|
|
1170
|
-
|
|
1333
|
+
background: var(--sf-cyan-04);
|
|
1334
|
+
border-radius: var(--sf-radius-10);
|
|
1335
|
+
|
|
1336
|
+
margin-top: var(--sf-pad-8);
|
|
1171
1337
|
}
|
|
1172
1338
|
.symframe[data-mode="awaiting"] .awaiting-list {
|
|
1173
1339
|
/* The footer is now sized larger than baseline. Let the list flex
|
|
@@ -1178,9 +1344,11 @@ body {
|
|
|
1178
1344
|
}
|
|
1179
1345
|
|
|
1180
1346
|
/* Quiet mode: only the substrate breathes. Cards + AWAITING hidden.
|
|
1181
|
-
This is the "deep think" or "nothing to surface" posture.
|
|
1347
|
+
This is the "deep think" or "nothing to surface" posture.
|
|
1348
|
+
Stage D.3: minmax(0, 1fr) so the substrate can shrink below
|
|
1349
|
+
content size and scroll internally. */
|
|
1182
1350
|
.symframe[data-mode="quiet"] {
|
|
1183
|
-
grid-template-rows: auto 1fr;
|
|
1351
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
1184
1352
|
}
|
|
1185
1353
|
.symframe[data-mode="quiet"] .symframe-cards,
|
|
1186
1354
|
.symframe[data-mode="quiet"] .symframe-awaiting {
|
|
@@ -1231,10 +1399,11 @@ body {
|
|
|
1231
1399
|
min-height: 0;
|
|
1232
1400
|
display: flex;
|
|
1233
1401
|
flex-direction: column;
|
|
1234
|
-
gap:
|
|
1402
|
+
gap: var(--sf-pad-10);
|
|
1403
|
+
|
|
1235
1404
|
overflow-y: auto;
|
|
1236
1405
|
scrollbar-width: thin;
|
|
1237
|
-
scrollbar-color:
|
|
1406
|
+
scrollbar-color: var(--sf-cyan-12) transparent;
|
|
1238
1407
|
/* Let scroll/click events fall through the empty space between cards
|
|
1239
1408
|
down to the substrate, so the user can scroll reasoning even when
|
|
1240
1409
|
foreground cards are foregrounded. Cards themselves re-enable
|
|
@@ -1248,8 +1417,8 @@ body {
|
|
|
1248
1417
|
width: 3px;
|
|
1249
1418
|
}
|
|
1250
1419
|
.symframe-cards::-webkit-scrollbar-thumb {
|
|
1251
|
-
background:
|
|
1252
|
-
border-radius:
|
|
1420
|
+
background: var(--sf-cyan-12);
|
|
1421
|
+
border-radius: var(--sf-radius-2);
|
|
1253
1422
|
}
|
|
1254
1423
|
|
|
1255
1424
|
/* ── Substrate (ambient reasoning layer, Stage B) ──────────────────── */
|
|
@@ -1264,17 +1433,19 @@ body {
|
|
|
1264
1433
|
overflow-y: auto;
|
|
1265
1434
|
display: flex;
|
|
1266
1435
|
flex-direction: column;
|
|
1267
|
-
gap:
|
|
1268
|
-
|
|
1436
|
+
gap: var(--sf-pad-6);
|
|
1437
|
+
|
|
1438
|
+
padding: var(--sf-pad-2) var(--sf-pad-4) var(--sf-pad-4);
|
|
1439
|
+
|
|
1269
1440
|
scrollbar-width: thin;
|
|
1270
|
-
scrollbar-color:
|
|
1441
|
+
scrollbar-color: var(--sf-cyan-18) transparent;
|
|
1271
1442
|
}
|
|
1272
1443
|
.symframe-substrate::-webkit-scrollbar {
|
|
1273
1444
|
width: 3px;
|
|
1274
1445
|
}
|
|
1275
1446
|
.symframe-substrate::-webkit-scrollbar-thumb {
|
|
1276
|
-
background:
|
|
1277
|
-
border-radius:
|
|
1447
|
+
background: var(--sf-cyan-18);
|
|
1448
|
+
border-radius: var(--sf-radius-2);
|
|
1278
1449
|
}
|
|
1279
1450
|
|
|
1280
1451
|
/* Substrate entry — decay-driven visual. Custom properties are written
|
|
@@ -1297,17 +1468,20 @@ body {
|
|
|
1297
1468
|
opacity: 1;
|
|
1298
1469
|
filter: none;
|
|
1299
1470
|
transform: none;
|
|
1300
|
-
border-color:
|
|
1301
|
-
box-shadow: 0 0 12px
|
|
1471
|
+
border-color: var(--sf-cyan-32);
|
|
1472
|
+
box-shadow: 0 0 12px var(--sf-cyan-08);
|
|
1302
1473
|
}
|
|
1303
1474
|
.substrate-live-dot {
|
|
1304
1475
|
display: inline-block;
|
|
1305
1476
|
width: 6px;
|
|
1306
1477
|
height: 6px;
|
|
1307
|
-
border-radius:
|
|
1478
|
+
border-radius: var(--sf-radius-pill);
|
|
1479
|
+
|
|
1308
1480
|
background: var(--accent-cyan);
|
|
1309
|
-
margin-right:
|
|
1310
|
-
|
|
1481
|
+
margin-right: var(--sf-pad-6);
|
|
1482
|
+
|
|
1483
|
+
animation: pulse var(--sf-time-pulse) ease-in-out infinite;
|
|
1484
|
+
|
|
1311
1485
|
flex-shrink: 0;
|
|
1312
1486
|
}
|
|
1313
1487
|
|
|
@@ -1318,13 +1492,15 @@ body {
|
|
|
1318
1492
|
max-height: 2px;
|
|
1319
1493
|
padding: 0;
|
|
1320
1494
|
border-width: 0;
|
|
1321
|
-
border-top: 1px solid
|
|
1495
|
+
border-top: 1px solid var(--sf-cyan-06);
|
|
1322
1496
|
overflow: hidden;
|
|
1323
1497
|
}
|
|
1324
1498
|
.substrate-entry.substrate-texture:hover {
|
|
1325
|
-
max-height:
|
|
1326
|
-
|
|
1327
|
-
|
|
1499
|
+
max-height: var(--sf-bound-list);
|
|
1500
|
+
|
|
1501
|
+
padding: var(--sf-pad-6) var(--sf-pad-8);
|
|
1502
|
+
|
|
1503
|
+
border: 1px solid var(--sf-cyan-18);
|
|
1328
1504
|
opacity: 0.7;
|
|
1329
1505
|
filter: none;
|
|
1330
1506
|
}
|
|
@@ -1345,7 +1521,8 @@ body {
|
|
|
1345
1521
|
flex-direction: column;
|
|
1346
1522
|
align-items: center;
|
|
1347
1523
|
justify-content: center;
|
|
1348
|
-
gap:
|
|
1524
|
+
gap: var(--sf-pad-10);
|
|
1525
|
+
|
|
1349
1526
|
padding: 40px 0;
|
|
1350
1527
|
margin: auto;
|
|
1351
1528
|
opacity: 0.85;
|
|
@@ -1353,17 +1530,15 @@ body {
|
|
|
1353
1530
|
.substrate-quiet-dot {
|
|
1354
1531
|
width: 14px;
|
|
1355
1532
|
height: 14px;
|
|
1356
|
-
border-radius:
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
rgba(0, 212, 255, 0) 70%
|
|
1361
|
-
);
|
|
1362
|
-
animation: quiet-pulse 3.2s ease-in-out infinite;
|
|
1533
|
+
border-radius: var(--sf-radius-pill);
|
|
1534
|
+
|
|
1535
|
+
background: radial-gradient(circle at center, var(--sf-cyan-45) 0%, rgba(0, 212, 255, 0) 70%);
|
|
1536
|
+
animation: quiet-pulse var(--sf-time-pulse-quiet) ease-in-out infinite;
|
|
1363
1537
|
}
|
|
1364
1538
|
.substrate-quiet-label {
|
|
1365
1539
|
font-family: var(--font-mono);
|
|
1366
|
-
font-size:
|
|
1540
|
+
font-size: var(--sf-text-9);
|
|
1541
|
+
|
|
1367
1542
|
letter-spacing: 0.18em;
|
|
1368
1543
|
text-transform: uppercase;
|
|
1369
1544
|
color: var(--text-dim);
|
|
@@ -1386,7 +1561,8 @@ body {
|
|
|
1386
1561
|
informative; the panel stays still. */
|
|
1387
1562
|
@media (prefers-reduced-motion: reduce) {
|
|
1388
1563
|
.substrate-entry {
|
|
1389
|
-
transition: opacity
|
|
1564
|
+
transition: opacity var(--sf-time-quick) ease;
|
|
1565
|
+
|
|
1390
1566
|
filter: none !important;
|
|
1391
1567
|
transform: none !important;
|
|
1392
1568
|
}
|
|
@@ -1406,22 +1582,24 @@ body {
|
|
|
1406
1582
|
the substrate breathe through. The backdrop-filter blurs whatever
|
|
1407
1583
|
substrate texture is behind, so even at moderate transparency the
|
|
1408
1584
|
card body stays crisp. */
|
|
1409
|
-
background:
|
|
1585
|
+
background: var(--sf-surface-card);
|
|
1410
1586
|
backdrop-filter: blur(10px) saturate(140%);
|
|
1411
1587
|
-webkit-backdrop-filter: blur(10px) saturate(140%);
|
|
1412
|
-
border: 1px solid
|
|
1413
|
-
border-radius:
|
|
1414
|
-
|
|
1588
|
+
border: 1px solid var(--sf-cyan-12);
|
|
1589
|
+
border-radius: var(--sf-radius-10);
|
|
1590
|
+
|
|
1591
|
+
padding: var(--sf-pad-10) var(--sf-pad-12);
|
|
1592
|
+
|
|
1415
1593
|
box-shadow:
|
|
1416
|
-
inset 0 1px 0
|
|
1417
|
-
0 4px 12px
|
|
1594
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
1595
|
+
0 4px 12px var(--sf-black-25);
|
|
1418
1596
|
}
|
|
1419
1597
|
.symframe .symframe-card::before,
|
|
1420
1598
|
.symframe .symframe-card::after {
|
|
1421
1599
|
display: none;
|
|
1422
1600
|
}
|
|
1423
1601
|
.symframe .symframe-card:hover {
|
|
1424
|
-
border-color:
|
|
1602
|
+
border-color: var(--sf-cyan-18);
|
|
1425
1603
|
}
|
|
1426
1604
|
|
|
1427
1605
|
/* Phase 2: dynamic-card sub-elements (only present on cards added via
|
|
@@ -1430,17 +1608,19 @@ body {
|
|
|
1430
1608
|
display: flex;
|
|
1431
1609
|
align-items: center;
|
|
1432
1610
|
justify-content: space-between;
|
|
1433
|
-
gap:
|
|
1611
|
+
gap: var(--sf-pad-8);
|
|
1434
1612
|
}
|
|
1435
1613
|
.symframe-card-dismiss {
|
|
1436
1614
|
background: transparent;
|
|
1437
1615
|
border: none;
|
|
1438
1616
|
color: var(--text-dim);
|
|
1439
|
-
font-size:
|
|
1617
|
+
font-size: var(--sf-text-16);
|
|
1618
|
+
|
|
1440
1619
|
line-height: 1;
|
|
1441
1620
|
width: 18px;
|
|
1442
1621
|
height: 18px;
|
|
1443
|
-
border-radius:
|
|
1622
|
+
border-radius: var(--sf-radius-4);
|
|
1623
|
+
|
|
1444
1624
|
cursor: pointer;
|
|
1445
1625
|
opacity: 0.6;
|
|
1446
1626
|
transition:
|
|
@@ -1455,7 +1635,7 @@ body {
|
|
|
1455
1635
|
.symframe-card-dismiss:hover {
|
|
1456
1636
|
opacity: 1;
|
|
1457
1637
|
color: var(--accent-cyan);
|
|
1458
|
-
background:
|
|
1638
|
+
background: var(--sf-cyan-08);
|
|
1459
1639
|
}
|
|
1460
1640
|
|
|
1461
1641
|
/* Stage C: pin glyph — replaces dismiss button on pinned cards. Click
|
|
@@ -1466,11 +1646,13 @@ body {
|
|
|
1466
1646
|
background: transparent;
|
|
1467
1647
|
border: none;
|
|
1468
1648
|
color: var(--accent-cyan);
|
|
1469
|
-
font-size:
|
|
1649
|
+
font-size: var(--sf-text-13);
|
|
1650
|
+
|
|
1470
1651
|
line-height: 1;
|
|
1471
1652
|
width: 18px;
|
|
1472
1653
|
height: 18px;
|
|
1473
|
-
border-radius:
|
|
1654
|
+
border-radius: var(--sf-radius-4);
|
|
1655
|
+
|
|
1474
1656
|
cursor: pointer;
|
|
1475
1657
|
opacity: 0.8;
|
|
1476
1658
|
padding: 0;
|
|
@@ -1483,33 +1665,33 @@ body {
|
|
|
1483
1665
|
}
|
|
1484
1666
|
.symframe-card-pin:hover {
|
|
1485
1667
|
opacity: 1;
|
|
1486
|
-
background:
|
|
1668
|
+
background: var(--sf-cyan-08);
|
|
1487
1669
|
}
|
|
1488
1670
|
|
|
1489
1671
|
/* Stage C: dwell pulse — 600ms cyan border + glow then return. */
|
|
1490
1672
|
.symframe-card.symframe-dwelling {
|
|
1491
|
-
animation: symframe-dwell 600ms ease-out;
|
|
1673
|
+
animation: symframe-dwell var(--sf-time-600ms) ease-out;
|
|
1492
1674
|
}
|
|
1493
1675
|
@keyframes symframe-dwell {
|
|
1494
1676
|
0% {
|
|
1495
1677
|
border-color: var(--accent-cyan);
|
|
1496
1678
|
box-shadow:
|
|
1497
|
-
0 0 0 0
|
|
1498
|
-
inset 0 1px 0
|
|
1499
|
-
0 4px 12px
|
|
1679
|
+
0 0 0 0 var(--sf-cyan-55),
|
|
1680
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
1681
|
+
0 4px 12px var(--sf-black-25);
|
|
1500
1682
|
}
|
|
1501
1683
|
60% {
|
|
1502
|
-
border-color:
|
|
1684
|
+
border-color: var(--sf-cyan-60);
|
|
1503
1685
|
box-shadow:
|
|
1504
1686
|
0 0 0 6px rgba(0, 212, 255, 0),
|
|
1505
|
-
inset 0 1px 0
|
|
1506
|
-
0 4px 12px
|
|
1687
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
1688
|
+
0 4px 12px var(--sf-black-25);
|
|
1507
1689
|
}
|
|
1508
1690
|
100% {
|
|
1509
|
-
border-color:
|
|
1691
|
+
border-color: var(--sf-cyan-12);
|
|
1510
1692
|
box-shadow:
|
|
1511
|
-
inset 0 1px 0
|
|
1512
|
-
0 4px 12px
|
|
1693
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
1694
|
+
0 4px 12px var(--sf-black-25);
|
|
1513
1695
|
}
|
|
1514
1696
|
}
|
|
1515
1697
|
|
|
@@ -1518,10 +1700,10 @@ body {
|
|
|
1518
1700
|
on transitionend or after a 900ms fail-safe timeout. */
|
|
1519
1701
|
.symframe-card.symframe-releasing {
|
|
1520
1702
|
transition:
|
|
1521
|
-
opacity 800ms cubic-bezier(0.4, 0, 0.6, 1),
|
|
1522
|
-
transform 800ms cubic-bezier(0.4, 0, 0.6, 1),
|
|
1523
|
-
max-height 800ms cubic-bezier(0.4, 0, 0.6, 1),
|
|
1524
|
-
margin 800ms ease;
|
|
1703
|
+
opacity var(--sf-time-800ms) cubic-bezier(0.4, 0, 0.6, 1),
|
|
1704
|
+
transform var(--sf-time-800ms) cubic-bezier(0.4, 0, 0.6, 1),
|
|
1705
|
+
max-height var(--sf-time-800ms) cubic-bezier(0.4, 0, 0.6, 1),
|
|
1706
|
+
margin var(--sf-time-800ms) ease;
|
|
1525
1707
|
opacity: 0;
|
|
1526
1708
|
transform: scale(0.92);
|
|
1527
1709
|
max-height: 0;
|
|
@@ -1538,7 +1720,7 @@ body {
|
|
|
1538
1720
|
border-color: var(--accent-cyan);
|
|
1539
1721
|
}
|
|
1540
1722
|
.symframe-card.symframe-releasing {
|
|
1541
|
-
transition: opacity 200ms ease;
|
|
1723
|
+
transition: opacity var(--sf-time-200ms) ease;
|
|
1542
1724
|
transform: none;
|
|
1543
1725
|
max-height: none;
|
|
1544
1726
|
}
|
|
@@ -1553,12 +1735,15 @@ body {
|
|
|
1553
1735
|
Click [+ Add] → menu with "Spawn subagent" / "Add scheduled task". */
|
|
1554
1736
|
.symframe-awaiting {
|
|
1555
1737
|
position: relative;
|
|
1556
|
-
border-top: 1px solid
|
|
1557
|
-
margin-top:
|
|
1558
|
-
|
|
1738
|
+
border-top: 1px solid var(--sf-cyan-12);
|
|
1739
|
+
margin-top: var(--sf-pad-8);
|
|
1740
|
+
|
|
1741
|
+
padding: var(--sf-pad-8) var(--sf-pad-6) var(--sf-pad-4);
|
|
1742
|
+
|
|
1559
1743
|
display: flex;
|
|
1560
1744
|
flex-direction: column;
|
|
1561
|
-
gap:
|
|
1745
|
+
gap: var(--sf-pad-4);
|
|
1746
|
+
|
|
1562
1747
|
/* Stage C.4: cap the AWAITING footer so it can't claim more than ~40%
|
|
1563
1748
|
of the column height even if the user has many cron jobs. The
|
|
1564
1749
|
list inside still scrolls (max-height: 200px on .awaiting-list)
|
|
@@ -1573,19 +1758,22 @@ body {
|
|
|
1573
1758
|
.awaiting-header {
|
|
1574
1759
|
display: flex;
|
|
1575
1760
|
align-items: baseline;
|
|
1576
|
-
gap:
|
|
1577
|
-
|
|
1761
|
+
gap: var(--sf-pad-8);
|
|
1762
|
+
|
|
1763
|
+
padding: 0 var(--sf-pad-4) var(--sf-pad-4);
|
|
1578
1764
|
}
|
|
1579
1765
|
.awaiting-title {
|
|
1580
1766
|
font-family: var(--font-mono);
|
|
1581
|
-
font-size:
|
|
1767
|
+
font-size: var(--sf-text-10);
|
|
1768
|
+
|
|
1582
1769
|
font-weight: 600;
|
|
1583
1770
|
letter-spacing: 0.14em;
|
|
1584
1771
|
color: var(--accent-cyan);
|
|
1585
1772
|
}
|
|
1586
1773
|
.awaiting-count {
|
|
1587
1774
|
font-family: var(--font-mono);
|
|
1588
|
-
font-size:
|
|
1775
|
+
font-size: var(--sf-text-9);
|
|
1776
|
+
|
|
1589
1777
|
letter-spacing: 0.04em;
|
|
1590
1778
|
color: var(--text-dim);
|
|
1591
1779
|
opacity: 0.6;
|
|
@@ -1594,38 +1782,44 @@ body {
|
|
|
1594
1782
|
.awaiting-list {
|
|
1595
1783
|
display: flex;
|
|
1596
1784
|
flex-direction: column;
|
|
1597
|
-
gap:
|
|
1598
|
-
|
|
1785
|
+
gap: var(--sf-pad-2);
|
|
1786
|
+
|
|
1787
|
+
max-height: var(--sf-bound-list);
|
|
1788
|
+
|
|
1599
1789
|
overflow-y: auto;
|
|
1600
1790
|
scrollbar-width: thin;
|
|
1601
|
-
scrollbar-color:
|
|
1791
|
+
scrollbar-color: var(--sf-cyan-18) transparent;
|
|
1602
1792
|
}
|
|
1603
1793
|
.awaiting-list::-webkit-scrollbar {
|
|
1604
1794
|
width: 3px;
|
|
1605
1795
|
}
|
|
1606
1796
|
.awaiting-list::-webkit-scrollbar-thumb {
|
|
1607
|
-
background:
|
|
1608
|
-
border-radius:
|
|
1797
|
+
background: var(--sf-cyan-18);
|
|
1798
|
+
border-radius: var(--sf-radius-2);
|
|
1609
1799
|
}
|
|
1610
1800
|
.awaiting-item {
|
|
1611
1801
|
display: grid;
|
|
1612
1802
|
grid-template-columns: 18px 1fr auto;
|
|
1613
1803
|
align-items: center;
|
|
1614
|
-
gap:
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1804
|
+
gap: var(--sf-pad-6);
|
|
1805
|
+
|
|
1806
|
+
padding: var(--sf-pad-5) var(--sf-pad-8);
|
|
1807
|
+
|
|
1808
|
+
border-radius: var(--sf-radius-6);
|
|
1809
|
+
|
|
1810
|
+
background: var(--sf-white-02);
|
|
1618
1811
|
border: 1px solid transparent;
|
|
1619
1812
|
font-family: var(--font-mono);
|
|
1620
|
-
font-size:
|
|
1813
|
+
font-size: var(--sf-text-10);
|
|
1814
|
+
|
|
1621
1815
|
cursor: pointer;
|
|
1622
1816
|
transition:
|
|
1623
1817
|
background 0.15s ease,
|
|
1624
1818
|
border-color 0.15s ease;
|
|
1625
1819
|
}
|
|
1626
1820
|
.awaiting-item:hover {
|
|
1627
|
-
background:
|
|
1628
|
-
border-color:
|
|
1821
|
+
background: var(--sf-cyan-06);
|
|
1822
|
+
border-color: var(--sf-cyan-15);
|
|
1629
1823
|
}
|
|
1630
1824
|
.awaiting-item-disabled {
|
|
1631
1825
|
opacity: 0.45;
|
|
@@ -1636,7 +1830,8 @@ body {
|
|
|
1636
1830
|
display: inline-flex;
|
|
1637
1831
|
align-items: center;
|
|
1638
1832
|
justify-content: center;
|
|
1639
|
-
font-size:
|
|
1833
|
+
font-size: var(--sf-text-11);
|
|
1834
|
+
|
|
1640
1835
|
line-height: 1;
|
|
1641
1836
|
}
|
|
1642
1837
|
.awaiting-glyph-subagent {
|
|
@@ -1658,7 +1853,8 @@ body {
|
|
|
1658
1853
|
.awaiting-meta {
|
|
1659
1854
|
color: var(--text-dim);
|
|
1660
1855
|
opacity: 0.75;
|
|
1661
|
-
font-size:
|
|
1856
|
+
font-size: var(--sf-text-9);
|
|
1857
|
+
|
|
1662
1858
|
letter-spacing: 0.04em;
|
|
1663
1859
|
text-transform: lowercase;
|
|
1664
1860
|
white-space: nowrap;
|
|
@@ -1667,10 +1863,12 @@ body {
|
|
|
1667
1863
|
/* Empty-state placeholder when no subagents and no schedules exist. */
|
|
1668
1864
|
.awaiting-empty {
|
|
1669
1865
|
font-family: var(--font-mono);
|
|
1670
|
-
font-size:
|
|
1866
|
+
font-size: var(--sf-text-10);
|
|
1867
|
+
|
|
1671
1868
|
color: var(--text-dim);
|
|
1672
1869
|
opacity: 0.55;
|
|
1673
|
-
padding:
|
|
1870
|
+
padding: var(--sf-pad-8) var(--sf-pad-10);
|
|
1871
|
+
|
|
1674
1872
|
text-align: center;
|
|
1675
1873
|
font-style: italic;
|
|
1676
1874
|
}
|
|
@@ -1679,16 +1877,21 @@ body {
|
|
|
1679
1877
|
.awaiting-add-btn {
|
|
1680
1878
|
display: inline-flex;
|
|
1681
1879
|
align-items: center;
|
|
1682
|
-
gap:
|
|
1683
|
-
|
|
1880
|
+
gap: var(--sf-pad-6);
|
|
1881
|
+
|
|
1882
|
+
margin-top: var(--sf-pad-4);
|
|
1883
|
+
|
|
1684
1884
|
align-self: flex-start;
|
|
1685
|
-
padding:
|
|
1885
|
+
padding: var(--sf-pad-4) var(--sf-pad-10);
|
|
1886
|
+
|
|
1686
1887
|
background: transparent;
|
|
1687
|
-
border: 1px dashed
|
|
1688
|
-
border-radius:
|
|
1888
|
+
border: 1px dashed var(--sf-cyan-25);
|
|
1889
|
+
border-radius: var(--sf-radius-6);
|
|
1890
|
+
|
|
1689
1891
|
color: var(--text-dim);
|
|
1690
1892
|
font-family: var(--font-mono);
|
|
1691
|
-
font-size:
|
|
1893
|
+
font-size: var(--sf-text-10);
|
|
1894
|
+
|
|
1692
1895
|
letter-spacing: 0.04em;
|
|
1693
1896
|
cursor: pointer;
|
|
1694
1897
|
transition:
|
|
@@ -1699,7 +1902,7 @@ body {
|
|
|
1699
1902
|
.awaiting-add-btn:hover {
|
|
1700
1903
|
color: var(--accent-cyan);
|
|
1701
1904
|
border-color: var(--accent-cyan);
|
|
1702
|
-
background:
|
|
1905
|
+
background: var(--sf-cyan-04);
|
|
1703
1906
|
}
|
|
1704
1907
|
.awaiting-add-btn svg {
|
|
1705
1908
|
width: 12px;
|
|
@@ -1709,36 +1912,44 @@ body {
|
|
|
1709
1912
|
position: absolute;
|
|
1710
1913
|
left: 10px;
|
|
1711
1914
|
bottom: 100%;
|
|
1712
|
-
margin-bottom:
|
|
1713
|
-
|
|
1915
|
+
margin-bottom: var(--sf-pad-6);
|
|
1916
|
+
|
|
1917
|
+
background: var(--sf-surface-menu);
|
|
1714
1918
|
backdrop-filter: blur(12px) saturate(140%);
|
|
1715
1919
|
-webkit-backdrop-filter: blur(12px) saturate(140%);
|
|
1716
|
-
border: 1px solid
|
|
1717
|
-
border-radius:
|
|
1718
|
-
|
|
1920
|
+
border: 1px solid var(--sf-cyan-20);
|
|
1921
|
+
border-radius: var(--sf-radius-8);
|
|
1922
|
+
|
|
1923
|
+
padding: var(--sf-pad-4);
|
|
1924
|
+
|
|
1719
1925
|
display: flex;
|
|
1720
1926
|
flex-direction: column;
|
|
1721
|
-
gap:
|
|
1927
|
+
gap: var(--sf-pad-2);
|
|
1928
|
+
|
|
1722
1929
|
min-width: 180px;
|
|
1723
|
-
box-shadow: 0 8px 24px
|
|
1930
|
+
box-shadow: 0 8px 24px var(--sf-black-40);
|
|
1724
1931
|
z-index: 20;
|
|
1725
1932
|
}
|
|
1726
1933
|
.awaiting-add-item {
|
|
1727
1934
|
display: flex;
|
|
1728
1935
|
align-items: center;
|
|
1729
|
-
gap:
|
|
1730
|
-
|
|
1936
|
+
gap: var(--sf-pad-8);
|
|
1937
|
+
|
|
1938
|
+
padding: var(--sf-pad-6) var(--sf-pad-10);
|
|
1939
|
+
|
|
1731
1940
|
background: transparent;
|
|
1732
1941
|
border: none;
|
|
1733
|
-
border-radius:
|
|
1942
|
+
border-radius: var(--sf-radius-5);
|
|
1943
|
+
|
|
1734
1944
|
color: var(--text);
|
|
1735
1945
|
font-family: var(--font-mono);
|
|
1736
|
-
font-size:
|
|
1946
|
+
font-size: var(--sf-text-11);
|
|
1947
|
+
|
|
1737
1948
|
cursor: pointer;
|
|
1738
1949
|
text-align: left;
|
|
1739
1950
|
}
|
|
1740
1951
|
.awaiting-add-item:hover {
|
|
1741
|
-
background:
|
|
1952
|
+
background: var(--sf-cyan-08);
|
|
1742
1953
|
color: var(--accent-cyan);
|
|
1743
1954
|
}
|
|
1744
1955
|
.awaiting-add-glyph {
|
|
@@ -1749,49 +1960,58 @@ body {
|
|
|
1749
1960
|
|
|
1750
1961
|
.symframe-card-body {
|
|
1751
1962
|
font-family: var(--font-mono);
|
|
1752
|
-
font-size:
|
|
1963
|
+
font-size: var(--sf-text-11);
|
|
1964
|
+
|
|
1753
1965
|
line-height: 1.5;
|
|
1754
1966
|
color: var(--text);
|
|
1755
|
-
margin-top:
|
|
1967
|
+
margin-top: var(--sf-pad-8);
|
|
1968
|
+
|
|
1756
1969
|
white-space: pre-wrap;
|
|
1757
1970
|
word-break: break-word;
|
|
1758
|
-
max-height:
|
|
1971
|
+
max-height: var(--sf-bound-body);
|
|
1972
|
+
|
|
1759
1973
|
overflow-y: auto;
|
|
1760
1974
|
}
|
|
1761
1975
|
.symframe-card-actions {
|
|
1762
1976
|
display: flex;
|
|
1763
|
-
gap:
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1977
|
+
gap: var(--sf-pad-6);
|
|
1978
|
+
|
|
1979
|
+
margin-top: var(--sf-pad-10);
|
|
1980
|
+
|
|
1981
|
+
padding-top: var(--sf-pad-8);
|
|
1982
|
+
|
|
1983
|
+
border-top: 1px solid var(--sf-white-05);
|
|
1767
1984
|
flex-wrap: wrap;
|
|
1768
1985
|
}
|
|
1769
1986
|
.symframe-card-action {
|
|
1770
1987
|
flex: 1 1 auto;
|
|
1771
1988
|
min-width: 60px;
|
|
1772
|
-
padding:
|
|
1989
|
+
padding: var(--sf-pad-6) var(--sf-pad-10);
|
|
1990
|
+
|
|
1773
1991
|
border: 1px solid var(--glass-border);
|
|
1774
|
-
border-radius:
|
|
1775
|
-
|
|
1992
|
+
border-radius: var(--sf-radius-5);
|
|
1993
|
+
|
|
1994
|
+
background: var(--sf-white-03);
|
|
1776
1995
|
color: var(--text-dim);
|
|
1777
1996
|
font-family: var(--font-mono);
|
|
1778
|
-
font-size:
|
|
1997
|
+
font-size: var(--sf-text-10);
|
|
1998
|
+
|
|
1779
1999
|
letter-spacing: 0.04em;
|
|
1780
2000
|
cursor: pointer;
|
|
1781
|
-
transition: all
|
|
2001
|
+
transition: all var(--sf-time-fast) ease;
|
|
1782
2002
|
}
|
|
1783
2003
|
.symframe-card-action:hover {
|
|
1784
2004
|
border-color: var(--accent-cyan);
|
|
1785
2005
|
color: var(--text);
|
|
1786
2006
|
}
|
|
1787
2007
|
.symframe-card-action-primary {
|
|
1788
|
-
background:
|
|
2008
|
+
background: var(--sf-cyan-08);
|
|
1789
2009
|
border-color: var(--accent-cyan);
|
|
1790
2010
|
color: var(--accent-cyan);
|
|
1791
2011
|
}
|
|
1792
2012
|
.symframe-card-action-primary:hover {
|
|
1793
|
-
background:
|
|
1794
|
-
box-shadow: 0 0 8px
|
|
2013
|
+
background: var(--sf-cyan-14);
|
|
2014
|
+
box-shadow: 0 0 8px var(--sf-cyan-18);
|
|
1795
2015
|
}
|
|
1796
2016
|
|
|
1797
2017
|
/* ── Stage D.1 (3.5.27): intent-aware visual treatment ──────────── */
|
|
@@ -1815,14 +2035,17 @@ body {
|
|
|
1815
2035
|
position: absolute;
|
|
1816
2036
|
top: 0;
|
|
1817
2037
|
left: 0;
|
|
1818
|
-
padding:
|
|
2038
|
+
padding: var(--sf-pad-2) var(--sf-pad-8) var(--sf-pad-2) var(--sf-pad-6);
|
|
2039
|
+
|
|
1819
2040
|
font-family: var(--font-mono);
|
|
1820
|
-
font-size:
|
|
2041
|
+
font-size: var(--sf-text-8);
|
|
2042
|
+
|
|
1821
2043
|
font-weight: 700;
|
|
1822
2044
|
letter-spacing: 0.14em;
|
|
1823
2045
|
text-transform: uppercase;
|
|
1824
|
-
background:
|
|
1825
|
-
border-radius:
|
|
2046
|
+
background: var(--sf-black-55);
|
|
2047
|
+
border-radius: var(--sf-radius-10) 0 var(--sf-radius-6) 0;
|
|
2048
|
+
|
|
1826
2049
|
border-right: 1px solid currentColor;
|
|
1827
2050
|
border-bottom: 1px solid currentColor;
|
|
1828
2051
|
pointer-events: none;
|
|
@@ -1838,9 +2061,9 @@ body {
|
|
|
1838
2061
|
/* holding — cyan; working memory */
|
|
1839
2062
|
.symframe-card-dynamic[data-intent="holding"] {
|
|
1840
2063
|
box-shadow:
|
|
1841
|
-
inset 3px 0 0 0
|
|
1842
|
-
inset 0 1px 0
|
|
1843
|
-
0 4px 12px
|
|
2064
|
+
inset 3px 0 0 0 var(--sf-cyan-65),
|
|
2065
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2066
|
+
0 4px 12px var(--sf-black-25);
|
|
1844
2067
|
}
|
|
1845
2068
|
.symframe-card-dynamic[data-intent="holding"]::before {
|
|
1846
2069
|
color: var(--accent-cyan);
|
|
@@ -1850,8 +2073,8 @@ body {
|
|
|
1850
2073
|
.symframe-card-dynamic[data-intent="weighing"] {
|
|
1851
2074
|
box-shadow:
|
|
1852
2075
|
inset 3px 0 0 0 #f5b73a,
|
|
1853
|
-
inset 0 1px 0
|
|
1854
|
-
0 4px 12px
|
|
2076
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2077
|
+
0 4px 12px var(--sf-black-25);
|
|
1855
2078
|
}
|
|
1856
2079
|
.symframe-card-dynamic[data-intent="weighing"]::before {
|
|
1857
2080
|
color: #f5b73a;
|
|
@@ -1859,22 +2082,22 @@ body {
|
|
|
1859
2082
|
|
|
1860
2083
|
/* producing — green; actively drafting, slow pulse on the stripe */
|
|
1861
2084
|
.symframe-card-dynamic[data-intent="producing"] {
|
|
1862
|
-
animation: intent-producing-pulse
|
|
2085
|
+
animation: intent-producing-pulse var(--sf-time-pulse-prod) ease-in-out infinite;
|
|
1863
2086
|
}
|
|
1864
2087
|
@keyframes intent-producing-pulse {
|
|
1865
2088
|
0%,
|
|
1866
2089
|
100% {
|
|
1867
2090
|
box-shadow:
|
|
1868
|
-
inset 3px 0 0 0
|
|
1869
|
-
inset 0 1px 0
|
|
1870
|
-
0 4px 12px
|
|
2091
|
+
inset 3px 0 0 0 var(--sf-green-55),
|
|
2092
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2093
|
+
0 4px 12px var(--sf-black-25);
|
|
1871
2094
|
}
|
|
1872
2095
|
50% {
|
|
1873
2096
|
box-shadow:
|
|
1874
|
-
inset 3px 0 0 0
|
|
1875
|
-
inset 0 1px 0
|
|
1876
|
-
0 4px 12px
|
|
1877
|
-
0 0 14px
|
|
2097
|
+
inset 3px 0 0 0 var(--sf-green-100),
|
|
2098
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2099
|
+
0 4px 12px var(--sf-black-25),
|
|
2100
|
+
0 0 14px var(--sf-green-20);
|
|
1878
2101
|
}
|
|
1879
2102
|
}
|
|
1880
2103
|
.symframe-card-dynamic[data-intent="producing"]::before {
|
|
@@ -1886,8 +2109,8 @@ body {
|
|
|
1886
2109
|
.symframe-card-dynamic[data-intent="drafted"] {
|
|
1887
2110
|
box-shadow:
|
|
1888
2111
|
inset 3px 0 0 0 #8b5cf6,
|
|
1889
|
-
inset 0 1px 0
|
|
1890
|
-
0 4px 12px
|
|
2112
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2113
|
+
0 4px 12px var(--sf-black-25);
|
|
1891
2114
|
}
|
|
1892
2115
|
.symframe-card-dynamic[data-intent="drafted"]::before {
|
|
1893
2116
|
color: #8b5cf6;
|
|
@@ -1895,30 +2118,30 @@ body {
|
|
|
1895
2118
|
/* Emphasize action buttons on drafted cards — these cards exist to
|
|
1896
2119
|
be acted on (Send / Copy / Open). Make the buttons more clickable. */
|
|
1897
2120
|
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action {
|
|
1898
|
-
border-color:
|
|
2121
|
+
border-color: var(--sf-violet-55);
|
|
1899
2122
|
color: var(--text);
|
|
1900
2123
|
font-weight: 600;
|
|
1901
2124
|
}
|
|
1902
2125
|
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action:hover {
|
|
1903
|
-
background:
|
|
2126
|
+
background: var(--sf-violet-12);
|
|
1904
2127
|
border-color: #8b5cf6;
|
|
1905
2128
|
}
|
|
1906
2129
|
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary {
|
|
1907
|
-
background:
|
|
2130
|
+
background: var(--sf-violet-22);
|
|
1908
2131
|
border-color: #8b5cf6;
|
|
1909
2132
|
color: var(--text);
|
|
1910
2133
|
}
|
|
1911
2134
|
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary:hover {
|
|
1912
|
-
background:
|
|
1913
|
-
box-shadow: 0 0 10px
|
|
2135
|
+
background: var(--sf-violet-32);
|
|
2136
|
+
box-shadow: 0 0 10px var(--sf-violet-25);
|
|
1914
2137
|
}
|
|
1915
2138
|
|
|
1916
2139
|
/* reference — muted gray; passive read-only context */
|
|
1917
2140
|
.symframe-card-dynamic[data-intent="reference"] {
|
|
1918
2141
|
box-shadow:
|
|
1919
2142
|
inset 3px 0 0 0 rgba(255, 255, 255, 0.22),
|
|
1920
|
-
inset 0 1px 0
|
|
1921
|
-
0 4px 12px
|
|
2143
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2144
|
+
0 4px 12px var(--sf-black-25);
|
|
1922
2145
|
opacity: 0.88;
|
|
1923
2146
|
filter: saturate(0.75);
|
|
1924
2147
|
}
|
|
@@ -1932,13 +2155,13 @@ body {
|
|
|
1932
2155
|
miscategorization. */
|
|
1933
2156
|
.symframe-card-dynamic[data-intent="awaiting"] {
|
|
1934
2157
|
box-shadow:
|
|
1935
|
-
inset 3px 0 0 0
|
|
1936
|
-
inset 0 1px 0
|
|
1937
|
-
0 4px 12px
|
|
2158
|
+
inset 3px 0 0 0 var(--sf-pink-55),
|
|
2159
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2160
|
+
0 4px 12px var(--sf-black-25);
|
|
1938
2161
|
}
|
|
1939
2162
|
.symframe-card-dynamic[data-intent="awaiting"]::before {
|
|
1940
2163
|
content: "awaiting → footer";
|
|
1941
|
-
color:
|
|
2164
|
+
color: var(--sf-pink-85);
|
|
1942
2165
|
}
|
|
1943
2166
|
|
|
1944
2167
|
/* Reduced-motion: skip the producing pulse but keep the static
|
|
@@ -1947,9 +2170,9 @@ body {
|
|
|
1947
2170
|
.symframe-card-dynamic[data-intent="producing"] {
|
|
1948
2171
|
animation: none;
|
|
1949
2172
|
box-shadow:
|
|
1950
|
-
inset 3px 0 0 0
|
|
1951
|
-
inset 0 1px 0
|
|
1952
|
-
0 4px 12px
|
|
2173
|
+
inset 3px 0 0 0 var(--sf-green-75),
|
|
2174
|
+
inset 0 1px 0 var(--sf-white-04),
|
|
2175
|
+
0 4px 12px var(--sf-black-25);
|
|
1953
2176
|
}
|
|
1954
2177
|
}
|
|
1955
2178
|
|
|
@@ -1962,54 +2185,64 @@ body {
|
|
|
1962
2185
|
.symframe-body-markdown h2,
|
|
1963
2186
|
.symframe-body-markdown h3,
|
|
1964
2187
|
.symframe-body-markdown h4 {
|
|
1965
|
-
font-size:
|
|
2188
|
+
font-size: var(--sf-text-12);
|
|
2189
|
+
|
|
1966
2190
|
font-weight: 600;
|
|
1967
|
-
margin:
|
|
2191
|
+
margin: var(--sf-pad-8) 0 var(--sf-pad-4);
|
|
2192
|
+
|
|
1968
2193
|
color: var(--text);
|
|
1969
2194
|
}
|
|
1970
2195
|
.symframe-body-markdown p {
|
|
1971
|
-
margin:
|
|
2196
|
+
margin: var(--sf-pad-4) 0;
|
|
1972
2197
|
}
|
|
1973
2198
|
.symframe-body-markdown ul,
|
|
1974
2199
|
.symframe-body-markdown ol {
|
|
1975
2200
|
padding-left: 18px;
|
|
1976
|
-
margin:
|
|
2201
|
+
margin: var(--sf-pad-4) 0;
|
|
1977
2202
|
}
|
|
1978
2203
|
.symframe-body-markdown code {
|
|
1979
2204
|
font-family: var(--font-mono);
|
|
1980
|
-
font-size:
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
2205
|
+
font-size: var(--sf-text-10);
|
|
2206
|
+
|
|
2207
|
+
padding: 1px var(--sf-pad-4);
|
|
2208
|
+
|
|
2209
|
+
background: var(--sf-white-04);
|
|
2210
|
+
border-radius: var(--sf-radius-3);
|
|
1984
2211
|
}
|
|
1985
2212
|
.symframe-body-markdown pre {
|
|
1986
|
-
background:
|
|
1987
|
-
border: 1px solid
|
|
1988
|
-
border-radius:
|
|
1989
|
-
|
|
2213
|
+
background: var(--sf-black-25);
|
|
2214
|
+
border: 1px solid var(--sf-white-05);
|
|
2215
|
+
border-radius: var(--sf-radius-5);
|
|
2216
|
+
|
|
2217
|
+
padding: var(--sf-pad-8);
|
|
2218
|
+
|
|
1990
2219
|
overflow-x: auto;
|
|
1991
|
-
margin:
|
|
2220
|
+
margin: var(--sf-pad-6) 0;
|
|
1992
2221
|
}
|
|
1993
2222
|
.symframe-body-markdown pre code {
|
|
1994
2223
|
background: transparent;
|
|
1995
2224
|
padding: 0;
|
|
1996
|
-
font-size:
|
|
2225
|
+
font-size: var(--sf-text-10);
|
|
1997
2226
|
}
|
|
1998
2227
|
|
|
1999
2228
|
/* Code body — pre/code wrapper with hljs theme-friendly chrome. */
|
|
2000
2229
|
.symframe-body-code {
|
|
2001
|
-
background:
|
|
2002
|
-
border: 1px solid
|
|
2003
|
-
border-radius:
|
|
2004
|
-
|
|
2230
|
+
background: var(--sf-black-30);
|
|
2231
|
+
border: 1px solid var(--sf-white-06);
|
|
2232
|
+
border-radius: var(--sf-radius-5);
|
|
2233
|
+
|
|
2234
|
+
padding: var(--sf-pad-8) var(--sf-pad-10);
|
|
2235
|
+
|
|
2005
2236
|
margin: 0;
|
|
2006
2237
|
overflow-x: auto;
|
|
2007
|
-
max-height:
|
|
2238
|
+
max-height: var(--sf-bound-body);
|
|
2239
|
+
|
|
2008
2240
|
overflow-y: auto;
|
|
2009
2241
|
}
|
|
2010
2242
|
.symframe-body-code code {
|
|
2011
2243
|
font-family: var(--font-mono);
|
|
2012
|
-
font-size:
|
|
2244
|
+
font-size: var(--sf-text-10);
|
|
2245
|
+
|
|
2013
2246
|
line-height: 1.45;
|
|
2014
2247
|
color: var(--text);
|
|
2015
2248
|
background: transparent;
|
|
@@ -2019,28 +2252,33 @@ body {
|
|
|
2019
2252
|
.symframe-body-email {
|
|
2020
2253
|
display: flex;
|
|
2021
2254
|
flex-direction: column;
|
|
2022
|
-
gap:
|
|
2255
|
+
gap: var(--sf-pad-4);
|
|
2023
2256
|
}
|
|
2024
2257
|
.symframe-email-row {
|
|
2025
2258
|
display: flex;
|
|
2026
|
-
gap:
|
|
2259
|
+
gap: var(--sf-pad-6);
|
|
2260
|
+
|
|
2027
2261
|
font-family: var(--font-mono);
|
|
2028
|
-
font-size:
|
|
2262
|
+
font-size: var(--sf-text-10);
|
|
2263
|
+
|
|
2029
2264
|
letter-spacing: 0.02em;
|
|
2030
|
-
padding:
|
|
2031
|
-
|
|
2265
|
+
padding: var(--sf-pad-2) 0;
|
|
2266
|
+
|
|
2267
|
+
border-bottom: 1px dashed var(--sf-white-05);
|
|
2032
2268
|
}
|
|
2033
2269
|
.symframe-email-row:last-of-type {
|
|
2034
|
-
border-bottom: 1px solid
|
|
2035
|
-
margin-bottom:
|
|
2036
|
-
|
|
2270
|
+
border-bottom: 1px solid var(--sf-white-08);
|
|
2271
|
+
margin-bottom: var(--sf-pad-4);
|
|
2272
|
+
|
|
2273
|
+
padding-bottom: var(--sf-pad-4);
|
|
2037
2274
|
}
|
|
2038
2275
|
.symframe-email-label {
|
|
2039
2276
|
flex: 0 0 auto;
|
|
2040
2277
|
color: var(--text-dim);
|
|
2041
2278
|
text-transform: uppercase;
|
|
2042
2279
|
letter-spacing: 0.06em;
|
|
2043
|
-
font-size:
|
|
2280
|
+
font-size: var(--sf-text-9);
|
|
2281
|
+
|
|
2044
2282
|
min-width: 48px;
|
|
2045
2283
|
opacity: 0.7;
|
|
2046
2284
|
}
|
|
@@ -2050,26 +2288,29 @@ body {
|
|
|
2050
2288
|
}
|
|
2051
2289
|
.symframe-email-body {
|
|
2052
2290
|
font-family: var(--font-mono);
|
|
2053
|
-
font-size:
|
|
2291
|
+
font-size: var(--sf-text-11);
|
|
2292
|
+
|
|
2054
2293
|
line-height: 1.5;
|
|
2055
2294
|
color: var(--text);
|
|
2056
2295
|
white-space: pre-wrap;
|
|
2057
2296
|
word-break: break-word;
|
|
2058
|
-
margin-top:
|
|
2297
|
+
margin-top: var(--sf-pad-4);
|
|
2059
2298
|
}
|
|
2060
2299
|
|
|
2061
2300
|
/* PDF embed */
|
|
2062
2301
|
.symframe-body-pdf {
|
|
2063
2302
|
display: flex;
|
|
2064
2303
|
flex-direction: column;
|
|
2065
|
-
gap:
|
|
2304
|
+
gap: var(--sf-pad-6);
|
|
2066
2305
|
}
|
|
2067
2306
|
.symframe-pdf-iframe {
|
|
2068
2307
|
width: 100%;
|
|
2069
|
-
height:
|
|
2070
|
-
|
|
2071
|
-
border
|
|
2072
|
-
|
|
2308
|
+
height: var(--sf-bound-media);
|
|
2309
|
+
|
|
2310
|
+
border: 1px solid var(--sf-white-08);
|
|
2311
|
+
border-radius: var(--sf-radius-5);
|
|
2312
|
+
|
|
2313
|
+
background: var(--sf-black-20);
|
|
2073
2314
|
}
|
|
2074
2315
|
|
|
2075
2316
|
/* Audio + video shared chrome */
|
|
@@ -2077,23 +2318,26 @@ body {
|
|
|
2077
2318
|
.symframe-body-video {
|
|
2078
2319
|
display: flex;
|
|
2079
2320
|
flex-direction: column;
|
|
2080
|
-
gap:
|
|
2321
|
+
gap: var(--sf-pad-6);
|
|
2081
2322
|
}
|
|
2082
2323
|
.symframe-audio,
|
|
2083
2324
|
.symframe-video {
|
|
2084
2325
|
width: 100%;
|
|
2085
|
-
border-radius:
|
|
2086
|
-
|
|
2326
|
+
border-radius: var(--sf-radius-5);
|
|
2327
|
+
|
|
2328
|
+
background: var(--sf-black-20);
|
|
2087
2329
|
}
|
|
2088
2330
|
.symframe-video {
|
|
2089
|
-
max-height:
|
|
2331
|
+
max-height: var(--sf-bound-media);
|
|
2332
|
+
|
|
2090
2333
|
object-fit: contain;
|
|
2091
2334
|
}
|
|
2092
2335
|
|
|
2093
2336
|
/* Empty-media placeholder when url is missing */
|
|
2094
2337
|
.symframe-body-empty {
|
|
2095
2338
|
font-family: var(--font-mono);
|
|
2096
|
-
font-size:
|
|
2339
|
+
font-size: var(--sf-text-10);
|
|
2340
|
+
|
|
2097
2341
|
color: var(--text-dim);
|
|
2098
2342
|
opacity: 0.6;
|
|
2099
2343
|
font-style: italic;
|
|
@@ -2102,15 +2346,19 @@ body {
|
|
|
2102
2346
|
/* Download link — used by pdf/audio/video renderers */
|
|
2103
2347
|
.symframe-download {
|
|
2104
2348
|
display: inline-block;
|
|
2105
|
-
padding:
|
|
2349
|
+
padding: var(--sf-pad-4) var(--sf-pad-8);
|
|
2350
|
+
|
|
2106
2351
|
border: 1px solid var(--glass-border);
|
|
2107
|
-
border-radius:
|
|
2352
|
+
border-radius: var(--sf-radius-4);
|
|
2353
|
+
|
|
2108
2354
|
font-family: var(--font-mono);
|
|
2109
|
-
font-size:
|
|
2355
|
+
font-size: var(--sf-text-10);
|
|
2356
|
+
|
|
2110
2357
|
letter-spacing: 0.04em;
|
|
2111
2358
|
color: var(--text-dim);
|
|
2112
2359
|
text-decoration: none;
|
|
2113
|
-
transition: all
|
|
2360
|
+
transition: all var(--sf-time-fast) ease;
|
|
2361
|
+
|
|
2114
2362
|
align-self: flex-start;
|
|
2115
2363
|
}
|
|
2116
2364
|
.symframe-download:hover {
|
|
@@ -6692,17 +6940,20 @@ body {
|
|
|
6692
6940
|
display: inline-block;
|
|
6693
6941
|
width: 6px;
|
|
6694
6942
|
height: 6px;
|
|
6695
|
-
border-radius:
|
|
6943
|
+
border-radius: var(--sf-radius-pill);
|
|
6944
|
+
|
|
6696
6945
|
background: var(--accent-cyan);
|
|
6697
|
-
margin-left:
|
|
6946
|
+
margin-left: var(--sf-pad-6);
|
|
6947
|
+
|
|
6698
6948
|
vertical-align: middle;
|
|
6699
6949
|
opacity: 0;
|
|
6700
|
-
transition: opacity
|
|
6950
|
+
transition: opacity var(--sf-time-slow) ease;
|
|
6951
|
+
|
|
6701
6952
|
flex-shrink: 0;
|
|
6702
6953
|
}
|
|
6703
6954
|
.reasoning-live-dot.active {
|
|
6704
6955
|
opacity: 1;
|
|
6705
|
-
animation: pulse
|
|
6956
|
+
animation: pulse var(--sf-time-pulse) ease-in-out infinite;
|
|
6706
6957
|
}
|
|
6707
6958
|
|
|
6708
6959
|
/* The .reasoning-panel / .reasoning-feed / .reasoning-empty* rules were
|
|
@@ -6715,18 +6966,20 @@ body {
|
|
|
6715
6966
|
.reasoning-run-sep {
|
|
6716
6967
|
display: flex;
|
|
6717
6968
|
align-items: center;
|
|
6718
|
-
gap:
|
|
6719
|
-
|
|
6969
|
+
gap: var(--sf-pad-8);
|
|
6970
|
+
|
|
6971
|
+
margin: var(--sf-pad-4) 0 var(--sf-pad-2);
|
|
6720
6972
|
}
|
|
6721
6973
|
.reasoning-run-sep::before,
|
|
6722
6974
|
.reasoning-run-sep::after {
|
|
6723
6975
|
content: "";
|
|
6724
6976
|
flex: 1;
|
|
6725
6977
|
height: 1px;
|
|
6726
|
-
background:
|
|
6978
|
+
background: var(--sf-white-06);
|
|
6727
6979
|
}
|
|
6728
6980
|
.reasoning-run-sep-label {
|
|
6729
|
-
font-size:
|
|
6981
|
+
font-size: var(--sf-text-9);
|
|
6982
|
+
|
|
6730
6983
|
font-family: var(--font-mono);
|
|
6731
6984
|
font-weight: 600;
|
|
6732
6985
|
letter-spacing: 0.1em;
|
|
@@ -6738,59 +6991,66 @@ body {
|
|
|
6738
6991
|
.reasoning-entry {
|
|
6739
6992
|
display: flex;
|
|
6740
6993
|
flex-direction: column;
|
|
6741
|
-
gap:
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6994
|
+
gap: var(--sf-pad-4);
|
|
6995
|
+
|
|
6996
|
+
padding: var(--sf-pad-6) var(--sf-pad-8);
|
|
6997
|
+
|
|
6998
|
+
background: var(--sf-white-02);
|
|
6999
|
+
border: 1px solid var(--sf-white-05);
|
|
7000
|
+
border-radius: var(--sf-radius-8);
|
|
7001
|
+
|
|
7002
|
+
transition: border-color var(--sf-time-quick);
|
|
6747
7003
|
}
|
|
6748
7004
|
.reasoning-entry:hover {
|
|
6749
|
-
border-color:
|
|
7005
|
+
border-color: var(--sf-white-09);
|
|
6750
7006
|
}
|
|
6751
7007
|
|
|
6752
7008
|
/* Entry header row: badge + label */
|
|
6753
7009
|
.reasoning-entry-header {
|
|
6754
7010
|
display: flex;
|
|
6755
7011
|
align-items: center;
|
|
6756
|
-
gap:
|
|
7012
|
+
gap: var(--sf-pad-6);
|
|
6757
7013
|
}
|
|
6758
7014
|
.reasoning-entry-badge {
|
|
6759
|
-
font-size:
|
|
7015
|
+
font-size: var(--sf-text-9);
|
|
7016
|
+
|
|
6760
7017
|
font-family: var(--font-mono);
|
|
6761
7018
|
font-weight: 700;
|
|
6762
7019
|
letter-spacing: 0.1em;
|
|
6763
|
-
padding: 1px
|
|
6764
|
-
|
|
7020
|
+
padding: 1px var(--sf-pad-5);
|
|
7021
|
+
|
|
7022
|
+
border-radius: var(--sf-radius-4);
|
|
7023
|
+
|
|
6765
7024
|
flex-shrink: 0;
|
|
6766
7025
|
}
|
|
6767
7026
|
/* Thinking badge — cyan tint */
|
|
6768
7027
|
.reasoning-entry-badge.badge-think {
|
|
6769
|
-
background:
|
|
7028
|
+
background: var(--sf-cyan-10);
|
|
6770
7029
|
color: var(--accent-cyan);
|
|
6771
|
-
border: 1px solid
|
|
7030
|
+
border: 1px solid var(--sf-cyan-18);
|
|
6772
7031
|
}
|
|
6773
7032
|
/* Tool call badge — purple tint */
|
|
6774
7033
|
.reasoning-entry-badge.badge-tool {
|
|
6775
|
-
background:
|
|
7034
|
+
background: var(--sf-violet-12);
|
|
6776
7035
|
color: var(--accent-purple);
|
|
6777
|
-
border: 1px solid
|
|
7036
|
+
border: 1px solid var(--sf-violet-20);
|
|
6778
7037
|
}
|
|
6779
7038
|
/* Tool result badge — green tint */
|
|
6780
7039
|
.reasoning-entry-badge.badge-result {
|
|
6781
|
-
background:
|
|
7040
|
+
background: var(--sf-green-10);
|
|
6782
7041
|
color: var(--accent-green);
|
|
6783
|
-
border: 1px solid
|
|
7042
|
+
border: 1px solid var(--sf-green-18);
|
|
6784
7043
|
}
|
|
6785
7044
|
/* Narration badge — dim white tint */
|
|
6786
7045
|
.reasoning-entry-badge.badge-narration {
|
|
6787
|
-
background:
|
|
7046
|
+
background: var(--sf-white-06);
|
|
6788
7047
|
color: var(--text-muted);
|
|
6789
|
-
border: 1px solid
|
|
7048
|
+
border: 1px solid var(--sf-white-10);
|
|
6790
7049
|
}
|
|
6791
7050
|
|
|
6792
7051
|
.reasoning-entry-name {
|
|
6793
|
-
font-size:
|
|
7052
|
+
font-size: var(--sf-text-11);
|
|
7053
|
+
|
|
6794
7054
|
font-family: var(--font-mono);
|
|
6795
7055
|
color: var(--text-muted);
|
|
6796
7056
|
white-space: nowrap;
|
|
@@ -6801,48 +7061,55 @@ body {
|
|
|
6801
7061
|
|
|
6802
7062
|
/* Thinking body */
|
|
6803
7063
|
.reasoning-think-body {
|
|
6804
|
-
font-size:
|
|
7064
|
+
font-size: var(--sf-text-10);
|
|
7065
|
+
|
|
6805
7066
|
font-family: var(--font-mono);
|
|
6806
7067
|
color: var(--text-muted);
|
|
6807
7068
|
line-height: 1.55;
|
|
6808
7069
|
white-space: pre-wrap;
|
|
6809
7070
|
word-break: break-word;
|
|
6810
|
-
max-height:
|
|
7071
|
+
max-height: var(--sf-bound-detail);
|
|
7072
|
+
|
|
6811
7073
|
overflow-y: auto;
|
|
6812
|
-
padding:
|
|
7074
|
+
padding: var(--sf-pad-4) var(--sf-pad-2) 0;
|
|
7075
|
+
|
|
6813
7076
|
opacity: 0.75;
|
|
6814
7077
|
scrollbar-width: thin;
|
|
6815
|
-
scrollbar-color:
|
|
7078
|
+
scrollbar-color: var(--sf-cyan-15) transparent;
|
|
6816
7079
|
}
|
|
6817
7080
|
.reasoning-think-body::-webkit-scrollbar {
|
|
6818
7081
|
width: 2px;
|
|
6819
7082
|
}
|
|
6820
7083
|
.reasoning-think-body::-webkit-scrollbar-thumb {
|
|
6821
|
-
background:
|
|
6822
|
-
border-radius:
|
|
7084
|
+
background: var(--sf-cyan-15);
|
|
7085
|
+
border-radius: var(--sf-radius-2);
|
|
6823
7086
|
}
|
|
6824
7087
|
|
|
6825
7088
|
/* Tool detail — compact JSON preview, collapsible */
|
|
6826
7089
|
.reasoning-tool-preview {
|
|
6827
|
-
font-size:
|
|
7090
|
+
font-size: var(--sf-text-10);
|
|
7091
|
+
|
|
6828
7092
|
font-family: var(--font-mono);
|
|
6829
7093
|
color: var(--text-muted);
|
|
6830
7094
|
opacity: 0.65;
|
|
6831
7095
|
white-space: nowrap;
|
|
6832
7096
|
overflow: hidden;
|
|
6833
7097
|
text-overflow: ellipsis;
|
|
6834
|
-
padding:
|
|
7098
|
+
padding: var(--sf-pad-2) 0 0;
|
|
6835
7099
|
}
|
|
6836
7100
|
.reasoning-tool-detail {
|
|
6837
7101
|
display: none;
|
|
6838
|
-
font-size:
|
|
7102
|
+
font-size: var(--sf-text-10);
|
|
7103
|
+
|
|
6839
7104
|
font-family: var(--font-mono);
|
|
6840
7105
|
color: var(--text-muted);
|
|
6841
7106
|
white-space: pre-wrap;
|
|
6842
7107
|
word-break: break-all;
|
|
6843
|
-
padding:
|
|
7108
|
+
padding: var(--sf-pad-4) var(--sf-pad-2) 0;
|
|
7109
|
+
|
|
6844
7110
|
opacity: 0.65;
|
|
6845
|
-
max-height:
|
|
7111
|
+
max-height: var(--sf-bound-tool);
|
|
7112
|
+
|
|
6846
7113
|
overflow-y: auto;
|
|
6847
7114
|
}
|
|
6848
7115
|
.reasoning-entry.expanded .reasoning-tool-detail {
|
|
@@ -6854,10 +7121,10 @@ body {
|
|
|
6854
7121
|
|
|
6855
7122
|
/* Result row */
|
|
6856
7123
|
.reasoning-result-meta {
|
|
6857
|
-
font-size:
|
|
7124
|
+
font-size: var(--sf-text-10);
|
|
6858
7125
|
font-family: var(--font-mono);
|
|
6859
7126
|
color: var(--text-dim);
|
|
6860
|
-
padding:
|
|
7127
|
+
padding: var(--sf-pad-2) 0 0;
|
|
6861
7128
|
}
|
|
6862
7129
|
|
|
6863
7130
|
/* ── Lazy-load sentinel ──────────────────────────────────────────── */
|