@unity-china/codely-cli 1.0.0-beta.50 → 1.0.0-beta.52
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/bundle/gemini.js +1148 -1118
- package/bundle/web-ui/dist/public/app.css +976 -258
- package/bundle/web-ui/dist/public/app.js +41 -41
- package/package.json +5 -5
|
@@ -104,7 +104,7 @@ textarea {
|
|
|
104
104
|
background: rgba(255, 255, 255, 0.03);
|
|
105
105
|
color: var(--text);
|
|
106
106
|
cursor: pointer;
|
|
107
|
-
font-size:
|
|
107
|
+
font-size: 13px;
|
|
108
108
|
}
|
|
109
109
|
.btn:hover {
|
|
110
110
|
background: rgba(255, 255, 255, 0.06);
|
|
@@ -154,7 +154,7 @@ textarea {
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
.md {
|
|
157
|
-
font-size:
|
|
157
|
+
font-size: 14px;
|
|
158
158
|
line-height: 1.55;
|
|
159
159
|
color: var(--text);
|
|
160
160
|
}
|
|
@@ -170,16 +170,16 @@ textarea {
|
|
|
170
170
|
line-height: 1.25;
|
|
171
171
|
}
|
|
172
172
|
.md h1 {
|
|
173
|
-
font-size:
|
|
173
|
+
font-size: 20px;
|
|
174
174
|
}
|
|
175
175
|
.md h2 {
|
|
176
|
-
font-size:
|
|
176
|
+
font-size: 17px;
|
|
177
177
|
}
|
|
178
178
|
.md h3 {
|
|
179
|
-
font-size:
|
|
179
|
+
font-size: 15px;
|
|
180
180
|
}
|
|
181
181
|
.md h4 {
|
|
182
|
-
font-size:
|
|
182
|
+
font-size: 14px;
|
|
183
183
|
color: rgba(255, 255, 255, 0.86);
|
|
184
184
|
}
|
|
185
185
|
.md ul,
|
|
@@ -193,7 +193,7 @@ textarea {
|
|
|
193
193
|
}
|
|
194
194
|
.md code.inline {
|
|
195
195
|
font-family: var(--mono);
|
|
196
|
-
font-size:
|
|
196
|
+
font-size: 13px;
|
|
197
197
|
padding: 2px 6px;
|
|
198
198
|
border-radius: 8px;
|
|
199
199
|
border: 1px solid var(--border);
|
|
@@ -208,7 +208,7 @@ textarea {
|
|
|
208
208
|
background: rgba(0, 0, 0, 0.3);
|
|
209
209
|
overflow: auto;
|
|
210
210
|
font-family: var(--mono);
|
|
211
|
-
font-size:
|
|
211
|
+
font-size: 13px;
|
|
212
212
|
line-height: 1.5;
|
|
213
213
|
}
|
|
214
214
|
.md pre code {
|
|
@@ -935,75 +935,27 @@ textarea {
|
|
|
935
935
|
}
|
|
936
936
|
}
|
|
937
937
|
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
align-items: flex-start;
|
|
942
|
-
}
|
|
943
|
-
.cp-header-actions {
|
|
944
|
-
width: 100%;
|
|
945
|
-
justify-content: space-between;
|
|
946
|
-
}
|
|
947
|
-
|
|
948
|
-
.cp-broadcast-header {
|
|
949
|
-
flex-direction: column;
|
|
950
|
-
align-items: flex-start;
|
|
951
|
-
}
|
|
952
|
-
.cp-broadcast-actions {
|
|
953
|
-
width: 100%;
|
|
954
|
-
justify-content: flex-start;
|
|
955
|
-
margin-top: 8px;
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
.cp-worker-grid {
|
|
959
|
-
grid-template-columns: 1fr;
|
|
960
|
-
padding: 12px;
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
.cp-task-header {
|
|
964
|
-
flex-direction: column;
|
|
965
|
-
align-items: stretch;
|
|
966
|
-
}
|
|
967
|
-
.cp-task-actions {
|
|
968
|
-
flex-direction: row;
|
|
969
|
-
justify-content: flex-end;
|
|
970
|
-
margin-top: 8px;
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
/* Drawer mobile styles */
|
|
974
|
-
.cp-drawer {
|
|
975
|
-
inset: 0;
|
|
976
|
-
width: 100%;
|
|
977
|
-
max-width: none;
|
|
978
|
-
border-radius: 0;
|
|
979
|
-
border: none;
|
|
980
|
-
}
|
|
981
|
-
.cp-drawer.open {
|
|
982
|
-
width: 100%;
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
.cp-row {
|
|
986
|
-
flex-direction: column;
|
|
987
|
-
}
|
|
988
|
-
.cp-actions {
|
|
989
|
-
margin-top: 8px;
|
|
990
|
-
justify-content: flex-end;
|
|
991
|
-
}
|
|
992
|
-
}
|
|
938
|
+
/* =============================================
|
|
939
|
+
Control Plane — shared base styles
|
|
940
|
+
============================================= */
|
|
993
941
|
|
|
994
|
-
/* Control plane */
|
|
995
942
|
.control-plane {
|
|
996
943
|
display: flex;
|
|
944
|
+
flex-direction: column;
|
|
997
945
|
gap: 0;
|
|
946
|
+
height: 100%;
|
|
947
|
+
min-height: 0;
|
|
998
948
|
}
|
|
999
949
|
|
|
950
|
+
/* Top header bar */
|
|
1000
951
|
.cp-header {
|
|
1001
952
|
display: flex;
|
|
1002
953
|
align-items: center;
|
|
1003
954
|
justify-content: space-between;
|
|
1004
955
|
gap: 12px;
|
|
1005
|
-
padding:
|
|
956
|
+
padding: 12px 16px;
|
|
1006
957
|
border-bottom: 1px solid var(--border);
|
|
958
|
+
flex-shrink: 0;
|
|
1007
959
|
}
|
|
1008
960
|
|
|
1009
961
|
.cp-header h1 {
|
|
@@ -1017,303 +969,343 @@ textarea {
|
|
|
1017
969
|
}
|
|
1018
970
|
|
|
1019
971
|
.cp-subtitle {
|
|
1020
|
-
font-size:
|
|
972
|
+
font-size: 13px;
|
|
1021
973
|
color: var(--muted);
|
|
1022
|
-
margin-top:
|
|
974
|
+
margin-top: 3px;
|
|
1023
975
|
}
|
|
1024
976
|
|
|
1025
|
-
/*
|
|
1026
|
-
.cp-
|
|
1027
|
-
position: fixed;
|
|
1028
|
-
top: 0;
|
|
1029
|
-
right: 0;
|
|
1030
|
-
bottom: 0;
|
|
1031
|
-
width: 600px;
|
|
1032
|
-
max-width: 100%;
|
|
1033
|
-
z-index: 100;
|
|
1034
|
-
background: var(--panel-2);
|
|
1035
|
-
border-left: 1px solid var(--border);
|
|
1036
|
-
box-shadow: -4px 0 20px rgba(0, 0, 0, 0.5);
|
|
1037
|
-
transform: translateX(100%);
|
|
1038
|
-
transition: transform 0.2s ease;
|
|
977
|
+
/* Body area below header — sidebar + main */
|
|
978
|
+
.cp-body {
|
|
1039
979
|
display: flex;
|
|
1040
|
-
flex
|
|
980
|
+
flex: 1;
|
|
981
|
+
min-height: 0;
|
|
982
|
+
overflow: hidden;
|
|
1041
983
|
}
|
|
1042
984
|
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
985
|
+
/* =============================================
|
|
986
|
+
PC Sidebar
|
|
987
|
+
============================================= */
|
|
1046
988
|
|
|
1047
|
-
.cp-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
989
|
+
.cp-sidebar {
|
|
990
|
+
width: 260px;
|
|
991
|
+
flex-shrink: 0;
|
|
992
|
+
border-right: 1px solid var(--border);
|
|
993
|
+
display: flex;
|
|
994
|
+
flex-direction: column;
|
|
995
|
+
overflow: hidden;
|
|
996
|
+
background: var(--panel-2);
|
|
1053
997
|
}
|
|
1054
998
|
|
|
1055
|
-
.cp-
|
|
999
|
+
.cp-sidebar-section-label {
|
|
1000
|
+
padding: 10px 12px 6px;
|
|
1001
|
+
font-size: 11px;
|
|
1002
|
+
font-weight: 700;
|
|
1003
|
+
color: var(--muted);
|
|
1004
|
+
text-transform: uppercase;
|
|
1005
|
+
letter-spacing: 0.08em;
|
|
1006
|
+
flex-shrink: 0;
|
|
1056
1007
|
display: flex;
|
|
1057
1008
|
align-items: center;
|
|
1058
|
-
|
|
1059
|
-
gap: 12px;
|
|
1060
|
-
padding: 14px 16px;
|
|
1061
|
-
border-bottom: 1px solid var(--border);
|
|
1009
|
+
gap: 6px;
|
|
1062
1010
|
}
|
|
1063
1011
|
|
|
1064
|
-
.cp-
|
|
1065
|
-
|
|
1066
|
-
font-size: 14px;
|
|
1012
|
+
.cp-sidebar-workers-label {
|
|
1013
|
+
border-top: 1px solid var(--border);
|
|
1067
1014
|
}
|
|
1068
1015
|
|
|
1069
|
-
.cp-
|
|
1016
|
+
.cp-sidebar-workers-count {
|
|
1017
|
+
background: rgba(255, 255, 255, 0.08);
|
|
1018
|
+
border-radius: 999px;
|
|
1019
|
+
padding: 1px 7px;
|
|
1020
|
+
font-size: 11px;
|
|
1021
|
+
font-weight: 600;
|
|
1022
|
+
color: var(--muted);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/* Broadcast summary section in sidebar */
|
|
1026
|
+
.cp-sidebar-broadcast-section {
|
|
1027
|
+
padding: 10px 12px 12px;
|
|
1028
|
+
border-bottom: 1px solid var(--border);
|
|
1029
|
+
flex-shrink: 0;
|
|
1070
1030
|
display: flex;
|
|
1071
1031
|
flex-direction: column;
|
|
1072
1032
|
gap: 8px;
|
|
1073
|
-
padding: 12px 16px;
|
|
1074
|
-
border-bottom: 1px solid var(--border);
|
|
1075
|
-
}
|
|
1076
|
-
|
|
1077
|
-
.cp-drawer-content {
|
|
1078
|
-
flex: 1;
|
|
1079
|
-
overflow: auto;
|
|
1080
|
-
padding: 12px 16px;
|
|
1081
1033
|
}
|
|
1082
1034
|
|
|
1083
|
-
.cp-
|
|
1084
|
-
.cp-select {
|
|
1085
|
-
background: rgba(255, 255, 255, 0.03);
|
|
1086
|
-
border: 1px solid var(--border);
|
|
1087
|
-
color: var(--text);
|
|
1088
|
-
border-radius: var(--radius-sm);
|
|
1089
|
-
padding: 8px 10px;
|
|
1035
|
+
.cp-sidebar-broadcast-target {
|
|
1090
1036
|
font-size: 12px;
|
|
1091
|
-
|
|
1037
|
+
color: var(--muted);
|
|
1092
1038
|
}
|
|
1093
1039
|
|
|
1094
|
-
.cp-
|
|
1095
|
-
|
|
1040
|
+
.cp-sidebar-broadcast-btn {
|
|
1041
|
+
width: 100%;
|
|
1042
|
+
justify-content: center;
|
|
1096
1043
|
}
|
|
1097
1044
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
overflow: auto;
|
|
1045
|
+
/* Worker nav list inside sidebar */
|
|
1046
|
+
.cp-sidebar-workers {
|
|
1101
1047
|
flex: 1;
|
|
1048
|
+
overflow-y: auto;
|
|
1049
|
+
padding: 4px 0 8px;
|
|
1102
1050
|
}
|
|
1103
1051
|
|
|
1104
|
-
.cp-
|
|
1052
|
+
.cp-sidebar-worker-item {
|
|
1105
1053
|
display: flex;
|
|
1106
|
-
|
|
1107
|
-
gap:
|
|
1054
|
+
align-items: flex-start;
|
|
1055
|
+
gap: 8px;
|
|
1056
|
+
padding: 8px 12px;
|
|
1057
|
+
cursor: pointer;
|
|
1058
|
+
transition: background 0.12s;
|
|
1059
|
+
border-left: 2px solid transparent;
|
|
1108
1060
|
}
|
|
1109
1061
|
|
|
1110
|
-
.cp-
|
|
1111
|
-
|
|
1112
|
-
justify-content: space-between;
|
|
1113
|
-
gap: 12px;
|
|
1114
|
-
padding: 12px;
|
|
1115
|
-
border: 1px solid var(--border);
|
|
1116
|
-
border-radius: var(--radius);
|
|
1117
|
-
background: rgba(255, 255, 255, 0.03);
|
|
1062
|
+
.cp-sidebar-worker-item:hover {
|
|
1063
|
+
background: rgba(255, 255, 255, 0.04);
|
|
1118
1064
|
}
|
|
1119
1065
|
|
|
1120
|
-
.cp-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
padding-top: 4px;
|
|
1066
|
+
.cp-sidebar-worker-item.active {
|
|
1067
|
+
background: rgba(122, 162, 247, 0.08);
|
|
1068
|
+
border-left-color: var(--accent);
|
|
1124
1069
|
}
|
|
1125
1070
|
|
|
1126
|
-
.cp-
|
|
1127
|
-
width:
|
|
1128
|
-
height:
|
|
1071
|
+
.cp-sidebar-worker-item input[type='checkbox'] {
|
|
1072
|
+
width: 14px;
|
|
1073
|
+
height: 14px;
|
|
1074
|
+
flex-shrink: 0;
|
|
1075
|
+
cursor: pointer;
|
|
1076
|
+
margin-top: 3px;
|
|
1129
1077
|
}
|
|
1130
1078
|
|
|
1131
|
-
.cp-
|
|
1079
|
+
.cp-sidebar-worker-info {
|
|
1132
1080
|
flex: 1;
|
|
1133
1081
|
min-width: 0;
|
|
1134
|
-
}
|
|
1135
|
-
|
|
1136
|
-
.cp-row-title {
|
|
1137
1082
|
display: flex;
|
|
1138
1083
|
flex-direction: column;
|
|
1139
|
-
gap:
|
|
1084
|
+
gap: 2px;
|
|
1140
1085
|
}
|
|
1141
1086
|
|
|
1142
|
-
.cp-name {
|
|
1143
|
-
font-
|
|
1087
|
+
.cp-sidebar-worker-name {
|
|
1088
|
+
font-size: 13px;
|
|
1089
|
+
font-weight: 500;
|
|
1090
|
+
line-height: 1.4;
|
|
1091
|
+
word-break: break-word;
|
|
1144
1092
|
}
|
|
1145
1093
|
|
|
1146
|
-
.cp-url {
|
|
1094
|
+
.cp-sidebar-worker-url {
|
|
1147
1095
|
font-family: var(--mono);
|
|
1148
1096
|
font-size: 11px;
|
|
1149
1097
|
color: var(--muted);
|
|
1150
1098
|
word-break: break-all;
|
|
1099
|
+
line-height: 1.4;
|
|
1151
1100
|
}
|
|
1152
1101
|
|
|
1153
|
-
.cp-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
flex-wrap: wrap;
|
|
1158
|
-
margin-top: 6px;
|
|
1159
|
-
}
|
|
1160
|
-
|
|
1161
|
-
.cp-tags {
|
|
1162
|
-
display: flex;
|
|
1163
|
-
gap: 6px;
|
|
1164
|
-
flex-wrap: wrap;
|
|
1102
|
+
.cp-sidebar-worker-tags {
|
|
1103
|
+
font-size: 11px;
|
|
1104
|
+
color: rgba(187, 154, 247, 0.7);
|
|
1105
|
+
line-height: 1.4;
|
|
1165
1106
|
}
|
|
1166
1107
|
|
|
1167
|
-
.cp-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
border-radius: 6px;
|
|
1171
|
-
font-size: 10px;
|
|
1172
|
-
color: var(--muted);
|
|
1108
|
+
.cp-sidebar-worker-status {
|
|
1109
|
+
flex-shrink: 0;
|
|
1110
|
+
margin-top: 2px;
|
|
1173
1111
|
}
|
|
1174
1112
|
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1113
|
+
/* =============================================
|
|
1114
|
+
PC Broadcast Modal
|
|
1115
|
+
============================================= */
|
|
1178
1116
|
|
|
1179
|
-
.cp-
|
|
1117
|
+
.cp-broadcast-modal-backdrop {
|
|
1118
|
+
position: fixed;
|
|
1119
|
+
inset: 0;
|
|
1120
|
+
background: rgba(0, 0, 0, 0.6);
|
|
1121
|
+
z-index: 300;
|
|
1180
1122
|
display: flex;
|
|
1181
|
-
gap: 6px;
|
|
1182
1123
|
align-items: center;
|
|
1124
|
+
justify-content: center;
|
|
1125
|
+
padding: 20px;
|
|
1126
|
+
backdrop-filter: blur(3px);
|
|
1183
1127
|
}
|
|
1184
1128
|
|
|
1185
|
-
.cp-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1129
|
+
.cp-broadcast-modal {
|
|
1130
|
+
width: min(860px, 96vw);
|
|
1131
|
+
max-height: 88vh;
|
|
1132
|
+
background: rgba(16, 21, 33, 0.98);
|
|
1189
1133
|
border: 1px solid var(--border);
|
|
1190
|
-
|
|
1134
|
+
border-radius: 16px;
|
|
1135
|
+
box-shadow: var(--shadow);
|
|
1136
|
+
display: flex;
|
|
1137
|
+
flex-direction: column;
|
|
1138
|
+
overflow: hidden;
|
|
1191
1139
|
}
|
|
1192
1140
|
|
|
1193
|
-
.cp-
|
|
1194
|
-
|
|
1195
|
-
|
|
1141
|
+
.cp-broadcast-modal-header {
|
|
1142
|
+
display: flex;
|
|
1143
|
+
align-items: center;
|
|
1144
|
+
justify-content: space-between;
|
|
1145
|
+
padding: 14px 18px;
|
|
1146
|
+
border-bottom: 1px solid var(--border);
|
|
1147
|
+
flex-shrink: 0;
|
|
1196
1148
|
}
|
|
1197
1149
|
|
|
1198
|
-
.cp-
|
|
1199
|
-
|
|
1200
|
-
|
|
1150
|
+
.cp-broadcast-modal-title {
|
|
1151
|
+
font-size: 15px;
|
|
1152
|
+
font-weight: 650;
|
|
1201
1153
|
}
|
|
1202
1154
|
|
|
1203
|
-
.cp-
|
|
1155
|
+
.cp-broadcast-modal-close {
|
|
1156
|
+
background: none;
|
|
1157
|
+
border: none;
|
|
1204
1158
|
color: var(--muted);
|
|
1159
|
+
font-size: 16px;
|
|
1160
|
+
cursor: pointer;
|
|
1161
|
+
padding: 4px 8px;
|
|
1162
|
+
border-radius: 6px;
|
|
1163
|
+
line-height: 1;
|
|
1205
1164
|
}
|
|
1206
1165
|
|
|
1207
|
-
.cp-
|
|
1208
|
-
|
|
1209
|
-
color: var(--
|
|
1210
|
-
font-size: 10px;
|
|
1166
|
+
.cp-broadcast-modal-close:hover {
|
|
1167
|
+
background: rgba(255, 255, 255, 0.06);
|
|
1168
|
+
color: var(--text);
|
|
1211
1169
|
}
|
|
1212
1170
|
|
|
1213
|
-
.cp-
|
|
1171
|
+
.cp-broadcast-modal-body {
|
|
1172
|
+
display: grid;
|
|
1173
|
+
grid-template-columns: 1fr 320px;
|
|
1174
|
+
gap: 0;
|
|
1175
|
+
flex: 1;
|
|
1176
|
+
min-height: 0;
|
|
1177
|
+
overflow: hidden;
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
.cp-broadcast-modal-left {
|
|
1214
1181
|
display: flex;
|
|
1215
|
-
|
|
1216
|
-
|
|
1182
|
+
flex-direction: column;
|
|
1183
|
+
padding: 14px 18px;
|
|
1217
1184
|
gap: 10px;
|
|
1218
|
-
|
|
1219
|
-
|
|
1185
|
+
border-right: 1px solid var(--border);
|
|
1186
|
+
min-height: 0;
|
|
1220
1187
|
}
|
|
1221
1188
|
|
|
1222
|
-
.cp-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1189
|
+
.cp-broadcast-modal-right {
|
|
1190
|
+
display: flex;
|
|
1191
|
+
flex-direction: column;
|
|
1192
|
+
min-height: 0;
|
|
1193
|
+
overflow: hidden;
|
|
1226
1194
|
}
|
|
1227
1195
|
|
|
1228
|
-
.cp-
|
|
1196
|
+
.cp-broadcast-modal-label {
|
|
1197
|
+
font-size: 11px;
|
|
1198
|
+
font-weight: 700;
|
|
1199
|
+
color: var(--muted);
|
|
1200
|
+
text-transform: uppercase;
|
|
1201
|
+
letter-spacing: 0.08em;
|
|
1229
1202
|
display: flex;
|
|
1230
1203
|
align-items: center;
|
|
1204
|
+
justify-content: space-between;
|
|
1231
1205
|
gap: 8px;
|
|
1206
|
+
flex-shrink: 0;
|
|
1232
1207
|
}
|
|
1233
1208
|
|
|
1234
|
-
.cp-modal-
|
|
1209
|
+
.cp-broadcast-modal-node-actions {
|
|
1235
1210
|
display: flex;
|
|
1236
|
-
|
|
1237
|
-
gap: 10px;
|
|
1238
|
-
padding: 12px;
|
|
1211
|
+
gap: 6px;
|
|
1239
1212
|
}
|
|
1240
1213
|
|
|
1241
|
-
.cp-
|
|
1214
|
+
.cp-broadcast-modal-textarea {
|
|
1215
|
+
flex: 1;
|
|
1216
|
+
min-height: 160px;
|
|
1217
|
+
resize: none;
|
|
1218
|
+
border: 1px solid var(--border);
|
|
1219
|
+
border-radius: var(--radius-sm);
|
|
1220
|
+
background: rgba(255, 255, 255, 0.03);
|
|
1221
|
+
color: var(--text);
|
|
1222
|
+
padding: 10px 12px;
|
|
1223
|
+
font-size: 14px;
|
|
1224
|
+
line-height: 1.5;
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
.cp-broadcast-modal-textarea:focus {
|
|
1228
|
+
outline: none;
|
|
1229
|
+
border-color: rgba(122, 162, 247, 0.5);
|
|
1230
|
+
box-shadow: 0 0 0 3px rgba(122, 162, 247, 0.1);
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
.cp-broadcast-modal-footer {
|
|
1242
1234
|
display: flex;
|
|
1243
|
-
|
|
1244
|
-
|
|
1235
|
+
align-items: center;
|
|
1236
|
+
justify-content: space-between;
|
|
1237
|
+
gap: 10px;
|
|
1238
|
+
flex-shrink: 0;
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
.cp-broadcast-modal-target {
|
|
1245
1242
|
font-size: 12px;
|
|
1246
1243
|
color: var(--muted);
|
|
1247
1244
|
}
|
|
1248
1245
|
|
|
1249
|
-
.cp-modal-
|
|
1250
|
-
|
|
1251
|
-
|
|
1246
|
+
.cp-broadcast-modal-node-list {
|
|
1247
|
+
flex: 1;
|
|
1248
|
+
overflow-y: auto;
|
|
1249
|
+
padding: 8px 0;
|
|
1252
1250
|
}
|
|
1253
1251
|
|
|
1254
|
-
.cp-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1252
|
+
.cp-broadcast-modal-node-item {
|
|
1253
|
+
display: flex;
|
|
1254
|
+
align-items: flex-start;
|
|
1255
|
+
gap: 10px;
|
|
1256
|
+
padding: 8px 16px;
|
|
1257
|
+
cursor: pointer;
|
|
1258
|
+
transition: background 0.1s;
|
|
1258
1259
|
}
|
|
1259
1260
|
|
|
1260
|
-
.cp-
|
|
1261
|
-
.
|
|
1262
|
-
color: var(--muted);
|
|
1263
|
-
font-size: 12px;
|
|
1264
|
-
padding: 10px 0;
|
|
1261
|
+
.cp-broadcast-modal-node-item:hover {
|
|
1262
|
+
background: rgba(255, 255, 255, 0.04);
|
|
1265
1263
|
}
|
|
1266
1264
|
|
|
1267
|
-
.cp-broadcast {
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
margin:
|
|
1265
|
+
.cp-broadcast-modal-node-item input[type='checkbox'] {
|
|
1266
|
+
width: 15px;
|
|
1267
|
+
height: 15px;
|
|
1268
|
+
flex-shrink: 0;
|
|
1269
|
+
cursor: pointer;
|
|
1270
|
+
margin-top: 2px;
|
|
1273
1271
|
}
|
|
1274
1272
|
|
|
1275
|
-
.cp-broadcast-
|
|
1273
|
+
.cp-broadcast-modal-node-info {
|
|
1276
1274
|
display: flex;
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
margin-bottom: 8px;
|
|
1275
|
+
flex-direction: column;
|
|
1276
|
+
gap: 2px;
|
|
1277
|
+
min-width: 0;
|
|
1281
1278
|
}
|
|
1282
1279
|
|
|
1283
|
-
.cp-broadcast-
|
|
1280
|
+
.cp-broadcast-modal-node-name {
|
|
1284
1281
|
font-size: 13px;
|
|
1285
|
-
font-weight:
|
|
1282
|
+
font-weight: 500;
|
|
1283
|
+
line-height: 1.4;
|
|
1284
|
+
word-break: break-word;
|
|
1286
1285
|
}
|
|
1287
1286
|
|
|
1288
|
-
.cp-broadcast-
|
|
1287
|
+
.cp-broadcast-modal-node-url {
|
|
1288
|
+
font-family: var(--mono);
|
|
1289
1289
|
font-size: 11px;
|
|
1290
1290
|
color: var(--muted);
|
|
1291
|
-
|
|
1291
|
+
word-break: break-all;
|
|
1292
1292
|
}
|
|
1293
1293
|
|
|
1294
|
-
.cp-broadcast-
|
|
1295
|
-
|
|
1296
|
-
|
|
1294
|
+
.cp-broadcast-modal-node-tags {
|
|
1295
|
+
font-size: 11px;
|
|
1296
|
+
color: rgba(187, 154, 247, 0.7);
|
|
1297
1297
|
}
|
|
1298
1298
|
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
max-height: 160px;
|
|
1303
|
-
resize: vertical;
|
|
1304
|
-
border: 1px solid var(--border);
|
|
1305
|
-
border-radius: var(--radius-sm);
|
|
1306
|
-
background: rgba(255, 255, 255, 0.03);
|
|
1307
|
-
color: var(--text);
|
|
1308
|
-
padding: 10px;
|
|
1309
|
-
font-size: 12px;
|
|
1310
|
-
line-height: 1.4;
|
|
1311
|
-
}
|
|
1299
|
+
/* =============================================
|
|
1300
|
+
PC Main area — worker grid
|
|
1301
|
+
============================================= */
|
|
1312
1302
|
|
|
1313
|
-
.cp-
|
|
1303
|
+
.cp-main {
|
|
1304
|
+
flex: 1;
|
|
1305
|
+
min-width: 0;
|
|
1314
1306
|
display: flex;
|
|
1315
|
-
|
|
1316
|
-
|
|
1307
|
+
flex-direction: column;
|
|
1308
|
+
overflow: hidden;
|
|
1317
1309
|
}
|
|
1318
1310
|
|
|
1319
1311
|
.cp-workers {
|
|
@@ -1324,20 +1316,26 @@ textarea {
|
|
|
1324
1316
|
}
|
|
1325
1317
|
|
|
1326
1318
|
.cp-workers-header {
|
|
1327
|
-
padding: 12px
|
|
1328
|
-
font-size:
|
|
1319
|
+
padding: 12px 16px 0;
|
|
1320
|
+
font-size: 11px;
|
|
1329
1321
|
color: var(--muted);
|
|
1330
1322
|
text-transform: uppercase;
|
|
1331
1323
|
letter-spacing: 0.08em;
|
|
1324
|
+
flex-shrink: 0;
|
|
1332
1325
|
}
|
|
1333
1326
|
|
|
1334
1327
|
.cp-worker-grid {
|
|
1335
1328
|
display: grid;
|
|
1336
|
-
grid-template-columns: repeat(auto-
|
|
1329
|
+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
1337
1330
|
gap: 12px;
|
|
1338
|
-
padding: 12px
|
|
1331
|
+
padding: 12px 16px 16px;
|
|
1332
|
+
align-content: start;
|
|
1339
1333
|
}
|
|
1340
1334
|
|
|
1335
|
+
/* =============================================
|
|
1336
|
+
Worker task cards
|
|
1337
|
+
============================================= */
|
|
1338
|
+
|
|
1341
1339
|
.cp-task-card {
|
|
1342
1340
|
border: 2px solid var(--border);
|
|
1343
1341
|
border-radius: var(--radius);
|
|
@@ -1347,6 +1345,7 @@ textarea {
|
|
|
1347
1345
|
flex-direction: column;
|
|
1348
1346
|
cursor: pointer;
|
|
1349
1347
|
transition: border-color 0.15s ease;
|
|
1348
|
+
min-height: 360px;
|
|
1350
1349
|
}
|
|
1351
1350
|
|
|
1352
1351
|
.cp-task-card:hover {
|
|
@@ -1372,11 +1371,12 @@ textarea {
|
|
|
1372
1371
|
gap: 12px;
|
|
1373
1372
|
padding: 10px 12px;
|
|
1374
1373
|
border-bottom: 1px solid var(--border);
|
|
1374
|
+
flex-shrink: 0;
|
|
1375
1375
|
}
|
|
1376
1376
|
|
|
1377
1377
|
.cp-task-name {
|
|
1378
1378
|
font-weight: 600;
|
|
1379
|
-
font-size:
|
|
1379
|
+
font-size: 14px;
|
|
1380
1380
|
}
|
|
1381
1381
|
|
|
1382
1382
|
.cp-task-url {
|
|
@@ -1414,7 +1414,7 @@ textarea {
|
|
|
1414
1414
|
|
|
1415
1415
|
.cp-queue,
|
|
1416
1416
|
.cp-activity {
|
|
1417
|
-
font-size:
|
|
1417
|
+
font-size: 11px;
|
|
1418
1418
|
}
|
|
1419
1419
|
|
|
1420
1420
|
.cp-task-actions {
|
|
@@ -1425,9 +1425,10 @@ textarea {
|
|
|
1425
1425
|
|
|
1426
1426
|
.cp-task-error {
|
|
1427
1427
|
padding: 6px 12px;
|
|
1428
|
-
font-size:
|
|
1428
|
+
font-size: 12px;
|
|
1429
1429
|
color: var(--err);
|
|
1430
1430
|
border-bottom: 1px solid var(--border);
|
|
1431
|
+
flex-shrink: 0;
|
|
1431
1432
|
}
|
|
1432
1433
|
|
|
1433
1434
|
.cp-task-body {
|
|
@@ -1435,7 +1436,6 @@ textarea {
|
|
|
1435
1436
|
overflow: auto;
|
|
1436
1437
|
flex: 1;
|
|
1437
1438
|
min-height: 120px;
|
|
1438
|
-
max-height: 320px;
|
|
1439
1439
|
}
|
|
1440
1440
|
|
|
1441
1441
|
.cp-task-message,
|
|
@@ -1449,6 +1449,7 @@ textarea {
|
|
|
1449
1449
|
padding: 10px 12px;
|
|
1450
1450
|
border-top: 1px solid var(--border);
|
|
1451
1451
|
background: rgba(0, 0, 0, 0.1);
|
|
1452
|
+
flex-shrink: 0;
|
|
1452
1453
|
}
|
|
1453
1454
|
|
|
1454
1455
|
.cp-task-textarea {
|
|
@@ -1461,10 +1462,727 @@ textarea {
|
|
|
1461
1462
|
background: rgba(255, 255, 255, 0.03);
|
|
1462
1463
|
color: var(--text);
|
|
1463
1464
|
padding: 8px 10px;
|
|
1464
|
-
font-size:
|
|
1465
|
+
font-size: 13px;
|
|
1465
1466
|
line-height: 1.4;
|
|
1466
1467
|
}
|
|
1467
1468
|
|
|
1468
1469
|
.cp-task-input .btn {
|
|
1469
1470
|
align-self: flex-end;
|
|
1470
1471
|
}
|
|
1472
|
+
|
|
1473
|
+
/* =============================================
|
|
1474
|
+
Endpoint registry Drawer (right side)
|
|
1475
|
+
============================================= */
|
|
1476
|
+
|
|
1477
|
+
.cp-drawer {
|
|
1478
|
+
position: fixed;
|
|
1479
|
+
top: 0;
|
|
1480
|
+
right: 0;
|
|
1481
|
+
bottom: 0;
|
|
1482
|
+
width: 600px;
|
|
1483
|
+
max-width: 100%;
|
|
1484
|
+
z-index: 100;
|
|
1485
|
+
background: var(--panel-2);
|
|
1486
|
+
border-left: 1px solid var(--border);
|
|
1487
|
+
box-shadow: -4px 0 20px rgba(0, 0, 0, 0.5);
|
|
1488
|
+
transform: translateX(100%);
|
|
1489
|
+
transition: transform 0.2s ease;
|
|
1490
|
+
display: flex;
|
|
1491
|
+
flex-direction: column;
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
.cp-drawer.open {
|
|
1495
|
+
transform: translateX(0);
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
.cp-drawer-backdrop {
|
|
1499
|
+
position: fixed;
|
|
1500
|
+
inset: 0;
|
|
1501
|
+
background: rgba(0, 0, 0, 0.5);
|
|
1502
|
+
z-index: 90;
|
|
1503
|
+
backdrop-filter: blur(2px);
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
.cp-drawer-header {
|
|
1507
|
+
display: flex;
|
|
1508
|
+
align-items: center;
|
|
1509
|
+
justify-content: space-between;
|
|
1510
|
+
gap: 12px;
|
|
1511
|
+
padding: 14px 16px;
|
|
1512
|
+
border-bottom: 1px solid var(--border);
|
|
1513
|
+
position: sticky;
|
|
1514
|
+
top: 0;
|
|
1515
|
+
background: var(--panel-2);
|
|
1516
|
+
z-index: 10;
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
.cp-drawer-header h2 {
|
|
1520
|
+
margin: 0;
|
|
1521
|
+
font-size: 14px;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.cp-drawer-toolbar {
|
|
1525
|
+
display: flex;
|
|
1526
|
+
flex-direction: column;
|
|
1527
|
+
gap: 8px;
|
|
1528
|
+
padding: 12px 16px;
|
|
1529
|
+
border-bottom: 1px solid var(--border);
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
.cp-drawer-content {
|
|
1533
|
+
flex: 1;
|
|
1534
|
+
overflow: auto;
|
|
1535
|
+
padding: 12px 16px;
|
|
1536
|
+
}
|
|
1537
|
+
|
|
1538
|
+
/* =============================================
|
|
1539
|
+
Shared form elements
|
|
1540
|
+
============================================= */
|
|
1541
|
+
|
|
1542
|
+
.cp-input,
|
|
1543
|
+
.cp-select {
|
|
1544
|
+
background: rgba(255, 255, 255, 0.03);
|
|
1545
|
+
border: 1px solid var(--border);
|
|
1546
|
+
color: var(--text);
|
|
1547
|
+
border-radius: var(--radius-sm);
|
|
1548
|
+
padding: 8px 10px;
|
|
1549
|
+
font-size: 13px;
|
|
1550
|
+
width: 100%;
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
.cp-select {
|
|
1554
|
+
min-width: 100px;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
.cp-content {
|
|
1558
|
+
padding: 12px 16px;
|
|
1559
|
+
overflow: auto;
|
|
1560
|
+
flex: 1;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
.cp-list {
|
|
1564
|
+
display: flex;
|
|
1565
|
+
flex-direction: column;
|
|
1566
|
+
gap: 10px;
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
.cp-row {
|
|
1570
|
+
display: flex;
|
|
1571
|
+
justify-content: space-between;
|
|
1572
|
+
gap: 12px;
|
|
1573
|
+
padding: 10px 12px;
|
|
1574
|
+
border: 1px solid var(--border);
|
|
1575
|
+
border-radius: var(--radius);
|
|
1576
|
+
background: rgba(255, 255, 255, 0.03);
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
.cp-select-box {
|
|
1580
|
+
display: flex;
|
|
1581
|
+
align-items: flex-start;
|
|
1582
|
+
padding-top: 3px;
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
.cp-select-box input {
|
|
1586
|
+
width: 15px;
|
|
1587
|
+
height: 15px;
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
.cp-row-main {
|
|
1591
|
+
flex: 1;
|
|
1592
|
+
min-width: 0;
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
.cp-row-title {
|
|
1596
|
+
display: flex;
|
|
1597
|
+
flex-direction: column;
|
|
1598
|
+
gap: 3px;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
.cp-name {
|
|
1602
|
+
font-weight: 600;
|
|
1603
|
+
font-size: 13px;
|
|
1604
|
+
}
|
|
1605
|
+
|
|
1606
|
+
.cp-url {
|
|
1607
|
+
font-family: var(--mono);
|
|
1608
|
+
font-size: 11px;
|
|
1609
|
+
color: var(--muted);
|
|
1610
|
+
word-break: break-all;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
.cp-row-meta {
|
|
1614
|
+
display: flex;
|
|
1615
|
+
align-items: center;
|
|
1616
|
+
gap: 10px;
|
|
1617
|
+
flex-wrap: wrap;
|
|
1618
|
+
margin-top: 6px;
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
.cp-tags {
|
|
1622
|
+
display: flex;
|
|
1623
|
+
gap: 6px;
|
|
1624
|
+
flex-wrap: wrap;
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
.cp-tag {
|
|
1628
|
+
padding: 2px 6px;
|
|
1629
|
+
border: 1px solid var(--border);
|
|
1630
|
+
border-radius: 6px;
|
|
1631
|
+
font-size: 11px;
|
|
1632
|
+
color: var(--muted);
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
.cp-tag.muted {
|
|
1636
|
+
opacity: 0.6;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
.cp-actions {
|
|
1640
|
+
display: flex;
|
|
1641
|
+
gap: 6px;
|
|
1642
|
+
align-items: center;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
.cp-health {
|
|
1646
|
+
font-size: 11px;
|
|
1647
|
+
padding: 2px 6px;
|
|
1648
|
+
border-radius: 6px;
|
|
1649
|
+
border: 1px solid var(--border);
|
|
1650
|
+
color: var(--muted);
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
.cp-health.ok {
|
|
1654
|
+
color: var(--ok);
|
|
1655
|
+
border-color: rgba(158, 206, 106, 0.4);
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
.cp-health.err {
|
|
1659
|
+
color: var(--err);
|
|
1660
|
+
border-color: rgba(247, 118, 142, 0.4);
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
.cp-health.pending {
|
|
1664
|
+
color: var(--muted);
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1667
|
+
.cp-health-ms {
|
|
1668
|
+
margin-left: 6px;
|
|
1669
|
+
color: var(--muted);
|
|
1670
|
+
font-size: 11px;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
.cp-pagination {
|
|
1674
|
+
display: flex;
|
|
1675
|
+
align-items: center;
|
|
1676
|
+
justify-content: space-between;
|
|
1677
|
+
gap: 10px;
|
|
1678
|
+
padding: 10px 16px;
|
|
1679
|
+
border-top: 1px solid var(--border);
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
.cp-page-info,
|
|
1683
|
+
.cp-page-number {
|
|
1684
|
+
font-size: 12px;
|
|
1685
|
+
color: var(--muted);
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
.cp-page-controls {
|
|
1689
|
+
display: flex;
|
|
1690
|
+
align-items: center;
|
|
1691
|
+
gap: 8px;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
.cp-modal-body {
|
|
1695
|
+
display: flex;
|
|
1696
|
+
flex-direction: column;
|
|
1697
|
+
gap: 10px;
|
|
1698
|
+
padding: 12px;
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1701
|
+
.cp-label {
|
|
1702
|
+
display: flex;
|
|
1703
|
+
flex-direction: column;
|
|
1704
|
+
gap: 6px;
|
|
1705
|
+
font-size: 13px;
|
|
1706
|
+
color: var(--muted);
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
.cp-modal-actions {
|
|
1710
|
+
display: flex;
|
|
1711
|
+
gap: 8px;
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
.cp-error {
|
|
1715
|
+
color: var(--err);
|
|
1716
|
+
font-size: 13px;
|
|
1717
|
+
margin-top: 6px;
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
.cp-loading,
|
|
1721
|
+
.cp-empty {
|
|
1722
|
+
color: var(--muted);
|
|
1723
|
+
font-size: 13px;
|
|
1724
|
+
padding: 10px 0;
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
/* =============================================
|
|
1728
|
+
Mobile — Worker compact list card
|
|
1729
|
+
============================================= */
|
|
1730
|
+
|
|
1731
|
+
.cp-task-card-compact {
|
|
1732
|
+
display: flex;
|
|
1733
|
+
align-items: center;
|
|
1734
|
+
gap: 10px;
|
|
1735
|
+
padding: 12px 14px;
|
|
1736
|
+
border: 1px solid var(--border);
|
|
1737
|
+
border-radius: var(--radius);
|
|
1738
|
+
background: rgba(255, 255, 255, 0.02);
|
|
1739
|
+
cursor: pointer;
|
|
1740
|
+
transition: background 0.12s;
|
|
1741
|
+
-webkit-tap-highlight-color: transparent;
|
|
1742
|
+
}
|
|
1743
|
+
|
|
1744
|
+
.cp-task-card-compact:active {
|
|
1745
|
+
background: rgba(255, 255, 255, 0.05);
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1748
|
+
.cp-task-card-compact.error {
|
|
1749
|
+
border-color: rgba(247, 118, 142, 0.35);
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
.cp-task-card-compact input[type='checkbox'] {
|
|
1753
|
+
width: 18px;
|
|
1754
|
+
height: 18px;
|
|
1755
|
+
flex-shrink: 0;
|
|
1756
|
+
cursor: pointer;
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
.cp-task-card-compact-body {
|
|
1760
|
+
flex: 1;
|
|
1761
|
+
min-width: 0;
|
|
1762
|
+
}
|
|
1763
|
+
|
|
1764
|
+
.cp-task-card-compact-top {
|
|
1765
|
+
display: flex;
|
|
1766
|
+
align-items: center;
|
|
1767
|
+
gap: 8px;
|
|
1768
|
+
margin-bottom: 4px;
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1771
|
+
.cp-task-card-compact-name {
|
|
1772
|
+
font-size: 14px;
|
|
1773
|
+
font-weight: 600;
|
|
1774
|
+
flex: 1;
|
|
1775
|
+
min-width: 0;
|
|
1776
|
+
overflow: hidden;
|
|
1777
|
+
text-overflow: ellipsis;
|
|
1778
|
+
white-space: nowrap;
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
.cp-task-card-compact-meta {
|
|
1782
|
+
font-size: 11px;
|
|
1783
|
+
color: var(--muted);
|
|
1784
|
+
display: flex;
|
|
1785
|
+
gap: 8px;
|
|
1786
|
+
}
|
|
1787
|
+
|
|
1788
|
+
.cp-task-card-compact-preview {
|
|
1789
|
+
font-size: 12px;
|
|
1790
|
+
color: var(--muted);
|
|
1791
|
+
overflow: hidden;
|
|
1792
|
+
text-overflow: ellipsis;
|
|
1793
|
+
white-space: nowrap;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
.cp-task-card-compact-chevron {
|
|
1797
|
+
color: var(--muted);
|
|
1798
|
+
flex-shrink: 0;
|
|
1799
|
+
font-size: 16px;
|
|
1800
|
+
opacity: 0.5;
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
/* =============================================
|
|
1804
|
+
Mobile — Detail view
|
|
1805
|
+
============================================= */
|
|
1806
|
+
|
|
1807
|
+
.cp-mobile-detail {
|
|
1808
|
+
display: flex;
|
|
1809
|
+
flex-direction: column;
|
|
1810
|
+
flex: 1;
|
|
1811
|
+
min-height: 0;
|
|
1812
|
+
overflow: hidden;
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1815
|
+
.cp-mobile-header-title {
|
|
1816
|
+
font-size: 16px;
|
|
1817
|
+
font-weight: 700;
|
|
1818
|
+
margin: 0;
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
.cp-mobile-back-btn {
|
|
1822
|
+
display: flex;
|
|
1823
|
+
align-items: center;
|
|
1824
|
+
gap: 4px;
|
|
1825
|
+
background: none;
|
|
1826
|
+
border: none;
|
|
1827
|
+
color: var(--accent);
|
|
1828
|
+
font-size: 15px;
|
|
1829
|
+
cursor: pointer;
|
|
1830
|
+
padding: 4px 0;
|
|
1831
|
+
flex-shrink: 0;
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
.cp-mobile-detail-title {
|
|
1835
|
+
font-size: 15px;
|
|
1836
|
+
font-weight: 600;
|
|
1837
|
+
overflow: hidden;
|
|
1838
|
+
text-overflow: ellipsis;
|
|
1839
|
+
white-space: nowrap;
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
.cp-mobile-detail-feed {
|
|
1843
|
+
flex: 1;
|
|
1844
|
+
overflow: auto;
|
|
1845
|
+
padding: 10px 14px;
|
|
1846
|
+
min-height: 0;
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
.cp-mobile-detail-input {
|
|
1850
|
+
display: flex;
|
|
1851
|
+
gap: 8px;
|
|
1852
|
+
padding: 10px 14px;
|
|
1853
|
+
border-top: 1px solid var(--border);
|
|
1854
|
+
background: rgba(0, 0, 0, 0.1);
|
|
1855
|
+
flex-shrink: 0;
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1858
|
+
.cp-mobile-detail-textarea {
|
|
1859
|
+
flex: 1;
|
|
1860
|
+
min-height: 44px;
|
|
1861
|
+
max-height: 120px;
|
|
1862
|
+
resize: none;
|
|
1863
|
+
border: 1px solid var(--border);
|
|
1864
|
+
border-radius: var(--radius-sm);
|
|
1865
|
+
background: rgba(255, 255, 255, 0.03);
|
|
1866
|
+
color: var(--text);
|
|
1867
|
+
padding: 10px 12px;
|
|
1868
|
+
font-size: 14px;
|
|
1869
|
+
line-height: 1.4;
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
.cp-mobile-detail-send {
|
|
1873
|
+
align-self: flex-end;
|
|
1874
|
+
min-height: 44px;
|
|
1875
|
+
padding: 0 18px;
|
|
1876
|
+
}
|
|
1877
|
+
|
|
1878
|
+
/* =============================================
|
|
1879
|
+
Mobile — Bottom Tab Bar
|
|
1880
|
+
============================================= */
|
|
1881
|
+
|
|
1882
|
+
.cp-mobile-tab-bar {
|
|
1883
|
+
display: none;
|
|
1884
|
+
flex-shrink: 0;
|
|
1885
|
+
border-top: 1px solid var(--border);
|
|
1886
|
+
background: var(--panel-2);
|
|
1887
|
+
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
1888
|
+
}
|
|
1889
|
+
|
|
1890
|
+
.cp-mobile-tab {
|
|
1891
|
+
flex: 1;
|
|
1892
|
+
display: flex;
|
|
1893
|
+
flex-direction: column;
|
|
1894
|
+
align-items: center;
|
|
1895
|
+
justify-content: center;
|
|
1896
|
+
gap: 4px;
|
|
1897
|
+
padding: 10px 4px;
|
|
1898
|
+
background: none;
|
|
1899
|
+
border: none;
|
|
1900
|
+
color: var(--muted);
|
|
1901
|
+
font-size: 11px;
|
|
1902
|
+
cursor: pointer;
|
|
1903
|
+
position: relative;
|
|
1904
|
+
-webkit-tap-highlight-color: transparent;
|
|
1905
|
+
transition: color 0.12s;
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
.cp-mobile-tab.active {
|
|
1909
|
+
color: var(--accent);
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1912
|
+
.cp-mobile-tab svg {
|
|
1913
|
+
flex-shrink: 0;
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
.cp-mobile-tab-broadcast {
|
|
1917
|
+
color: var(--muted);
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
.cp-mobile-tab-badge {
|
|
1921
|
+
position: absolute;
|
|
1922
|
+
top: 6px;
|
|
1923
|
+
right: calc(50% - 18px);
|
|
1924
|
+
background: var(--accent);
|
|
1925
|
+
color: #0f111a;
|
|
1926
|
+
font-size: 10px;
|
|
1927
|
+
font-weight: 700;
|
|
1928
|
+
border-radius: 999px;
|
|
1929
|
+
padding: 1px 5px;
|
|
1930
|
+
min-width: 16px;
|
|
1931
|
+
text-align: center;
|
|
1932
|
+
line-height: 1.4;
|
|
1933
|
+
}
|
|
1934
|
+
|
|
1935
|
+
/* =============================================
|
|
1936
|
+
Mobile — Broadcast tab (inline, full height)
|
|
1937
|
+
============================================= */
|
|
1938
|
+
|
|
1939
|
+
.cp-mobile-broadcast-tab {
|
|
1940
|
+
flex: 1;
|
|
1941
|
+
display: flex;
|
|
1942
|
+
flex-direction: column;
|
|
1943
|
+
overflow: hidden;
|
|
1944
|
+
min-height: 0;
|
|
1945
|
+
}
|
|
1946
|
+
|
|
1947
|
+
.cp-broadcast-sheet-nodes {
|
|
1948
|
+
border-bottom: 1px solid var(--border);
|
|
1949
|
+
overflow: hidden;
|
|
1950
|
+
flex: 1;
|
|
1951
|
+
display: flex;
|
|
1952
|
+
flex-direction: column;
|
|
1953
|
+
min-height: 0;
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1956
|
+
.cp-broadcast-sheet-nodes-header {
|
|
1957
|
+
display: flex;
|
|
1958
|
+
align-items: center;
|
|
1959
|
+
justify-content: space-between;
|
|
1960
|
+
gap: 8px;
|
|
1961
|
+
padding: 10px 16px;
|
|
1962
|
+
border-bottom: 1px solid var(--border);
|
|
1963
|
+
background: rgba(255, 255, 255, 0.02);
|
|
1964
|
+
flex-shrink: 0;
|
|
1965
|
+
}
|
|
1966
|
+
|
|
1967
|
+
.cp-broadcast-sheet-subtitle {
|
|
1968
|
+
font-size: 13px;
|
|
1969
|
+
color: var(--muted);
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
.cp-broadcast-sheet-node-list {
|
|
1973
|
+
overflow-y: auto;
|
|
1974
|
+
flex: 1;
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
.cp-broadcast-sheet-node-item {
|
|
1978
|
+
display: flex;
|
|
1979
|
+
align-items: flex-start;
|
|
1980
|
+
gap: 12px;
|
|
1981
|
+
padding: 12px 16px;
|
|
1982
|
+
cursor: pointer;
|
|
1983
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
1984
|
+
-webkit-tap-highlight-color: transparent;
|
|
1985
|
+
}
|
|
1986
|
+
|
|
1987
|
+
.cp-broadcast-sheet-node-item:active {
|
|
1988
|
+
background: rgba(255, 255, 255, 0.04);
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
.cp-broadcast-sheet-node-item:last-child {
|
|
1992
|
+
border-bottom: none;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1995
|
+
.cp-broadcast-sheet-node-item input[type='checkbox'] {
|
|
1996
|
+
width: 18px;
|
|
1997
|
+
height: 18px;
|
|
1998
|
+
flex-shrink: 0;
|
|
1999
|
+
margin-top: 2px;
|
|
2000
|
+
cursor: pointer;
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
.cp-broadcast-sheet-node-info {
|
|
2004
|
+
display: flex;
|
|
2005
|
+
flex-direction: column;
|
|
2006
|
+
gap: 3px;
|
|
2007
|
+
min-width: 0;
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
.cp-broadcast-sheet-node-name {
|
|
2011
|
+
font-size: 14px;
|
|
2012
|
+
font-weight: 500;
|
|
2013
|
+
word-break: break-word;
|
|
2014
|
+
line-height: 1.4;
|
|
2015
|
+
}
|
|
2016
|
+
|
|
2017
|
+
.cp-broadcast-sheet-node-url {
|
|
2018
|
+
font-family: var(--mono);
|
|
2019
|
+
font-size: 12px;
|
|
2020
|
+
color: var(--muted);
|
|
2021
|
+
word-break: break-all;
|
|
2022
|
+
}
|
|
2023
|
+
|
|
2024
|
+
.cp-broadcast-sheet-compose {
|
|
2025
|
+
padding: 12px 16px;
|
|
2026
|
+
border-top: 1px solid var(--border);
|
|
2027
|
+
display: flex;
|
|
2028
|
+
flex-direction: column;
|
|
2029
|
+
gap: 10px;
|
|
2030
|
+
flex-shrink: 0;
|
|
2031
|
+
padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
.cp-broadcast-sheet-textarea {
|
|
2035
|
+
width: 100%;
|
|
2036
|
+
min-height: 80px;
|
|
2037
|
+
max-height: 160px;
|
|
2038
|
+
resize: none;
|
|
2039
|
+
border: 1px solid var(--border);
|
|
2040
|
+
border-radius: var(--radius-sm);
|
|
2041
|
+
background: rgba(255, 255, 255, 0.03);
|
|
2042
|
+
color: var(--text);
|
|
2043
|
+
padding: 10px 12px;
|
|
2044
|
+
font-size: 14px;
|
|
2045
|
+
line-height: 1.4;
|
|
2046
|
+
}
|
|
2047
|
+
|
|
2048
|
+
.cp-broadcast-sheet-footer {
|
|
2049
|
+
display: flex;
|
|
2050
|
+
gap: 10px;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.cp-broadcast-sheet-footer .btn {
|
|
2054
|
+
flex: 1;
|
|
2055
|
+
min-height: 44px;
|
|
2056
|
+
font-size: 14px;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
/* =============================================
|
|
2060
|
+
Mobile — Worker list view
|
|
2061
|
+
============================================= */
|
|
2062
|
+
|
|
2063
|
+
.cp-mobile-list {
|
|
2064
|
+
flex: 1;
|
|
2065
|
+
overflow-y: auto;
|
|
2066
|
+
padding: 10px 12px;
|
|
2067
|
+
display: flex;
|
|
2068
|
+
flex-direction: column;
|
|
2069
|
+
gap: 8px;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
/* =============================================
|
|
2073
|
+
Mobile — Endpoints tab
|
|
2074
|
+
============================================= */
|
|
2075
|
+
|
|
2076
|
+
.cp-mobile-endpoints-tab {
|
|
2077
|
+
flex: 1;
|
|
2078
|
+
display: flex;
|
|
2079
|
+
flex-direction: column;
|
|
2080
|
+
overflow: hidden;
|
|
2081
|
+
min-height: 0;
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
.cp-mobile-endpoints-toolbar {
|
|
2085
|
+
padding: 10px 14px;
|
|
2086
|
+
border-bottom: 1px solid var(--border);
|
|
2087
|
+
flex-shrink: 0;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
/* =============================================
|
|
2091
|
+
Responsive breakpoints
|
|
2092
|
+
============================================= */
|
|
2093
|
+
|
|
2094
|
+
/* Desktop: sidebar + broadcast modal, no mobile elements */
|
|
2095
|
+
@media (min-width: 769px) {
|
|
2096
|
+
.cp-sidebar {
|
|
2097
|
+
display: flex;
|
|
2098
|
+
}
|
|
2099
|
+
.cp-header-mobile,
|
|
2100
|
+
.cp-mobile-list,
|
|
2101
|
+
.cp-mobile-detail,
|
|
2102
|
+
.cp-mobile-tab-bar,
|
|
2103
|
+
.cp-mobile-endpoints-tab,
|
|
2104
|
+
.cp-mobile-broadcast-tab {
|
|
2105
|
+
display: none !important;
|
|
2106
|
+
}
|
|
2107
|
+
.cp-header-pc {
|
|
2108
|
+
display: flex;
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
/* Mobile: bottom tabs, no sidebar */
|
|
2113
|
+
@media (max-width: 768px) {
|
|
2114
|
+
.app {
|
|
2115
|
+
padding: 0;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
.cp-header-pc {
|
|
2119
|
+
display: none !important;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
.cp-header-mobile {
|
|
2123
|
+
display: flex;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
.cp-sidebar {
|
|
2127
|
+
display: none;
|
|
2128
|
+
}
|
|
2129
|
+
|
|
2130
|
+
.cp-main {
|
|
2131
|
+
display: none;
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
.cp-mobile-tab-bar {
|
|
2135
|
+
display: flex;
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
/* Body fills between header and tab bar */
|
|
2139
|
+
.cp-body {
|
|
2140
|
+
flex: 1;
|
|
2141
|
+
min-height: 0;
|
|
2142
|
+
overflow: hidden;
|
|
2143
|
+
position: relative;
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
/* Drawer goes full screen on mobile */
|
|
2147
|
+
.cp-drawer {
|
|
2148
|
+
inset: 0;
|
|
2149
|
+
width: 100%;
|
|
2150
|
+
max-width: none;
|
|
2151
|
+
border-radius: 0;
|
|
2152
|
+
border: none;
|
|
2153
|
+
}
|
|
2154
|
+
.cp-drawer.open {
|
|
2155
|
+
width: 100%;
|
|
2156
|
+
}
|
|
2157
|
+
|
|
2158
|
+
/* Endpoint list rows stack vertically */
|
|
2159
|
+
.cp-row {
|
|
2160
|
+
flex-direction: column;
|
|
2161
|
+
gap: 8px;
|
|
2162
|
+
}
|
|
2163
|
+
.cp-actions {
|
|
2164
|
+
margin-top: 0;
|
|
2165
|
+
justify-content: flex-start;
|
|
2166
|
+
flex-wrap: wrap;
|
|
2167
|
+
gap: 8px;
|
|
2168
|
+
}
|
|
2169
|
+
.cp-actions .btn {
|
|
2170
|
+
min-height: 40px;
|
|
2171
|
+
flex: 1;
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2174
|
+
.cp-input,
|
|
2175
|
+
.cp-select {
|
|
2176
|
+
min-height: 40px;
|
|
2177
|
+
font-size: 14px;
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
.btn {
|
|
2181
|
+
min-height: 38px;
|
|
2182
|
+
}
|
|
2183
|
+
|
|
2184
|
+
/* Broadcast modal hidden on mobile (use sheet instead) */
|
|
2185
|
+
.cp-broadcast-modal-backdrop {
|
|
2186
|
+
display: none !important;
|
|
2187
|
+
}
|
|
2188
|
+
}
|