@mindexec/cli 0.2.477 → 0.2.478

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +323 -323
  2. package/codex-model-catalog.js +202 -202
  3. package/codex-runtime.js +1608 -1608
  4. package/desktop-workspace-state.cjs +120 -120
  5. package/electron/main.cjs +517 -517
  6. package/electron/preload.cjs +17 -17
  7. package/electron/recurring-update-owner-smoke.mjs +55 -55
  8. package/electron/recurring-update-owner.cjs +97 -97
  9. package/electron/source-smoke.mjs +108 -108
  10. package/electron/update-feed-resolver.cjs +79 -79
  11. package/electron/update-feed.json +10 -10
  12. package/electron/update-manager-smoke.mjs +146 -146
  13. package/electron/update-manager.cjs +297 -297
  14. package/electron/windows-package-smoke.mjs +156 -156
  15. package/launch-bridge.cjs +236 -236
  16. package/lzo1x.js +110 -110
  17. package/mode4-atlas-worker.js +440 -440
  18. package/mode4-atlas.js +130 -130
  19. package/package.json +1 -1
  20. package/port-guard.cjs +285 -285
  21. package/remote-fast/osx-arm64/MacScreenCaptureKitH264.swift +339 -339
  22. package/remote-fast/osx-arm64/MacSystemAudioCapture.swift +214 -214
  23. package/remote-fast/osx-arm64/UnixRawCaptureHelper.mjs +80 -80
  24. package/remote-fast/osx-arm64/livedesk-raw-capture-resampler.mjs +73 -73
  25. package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
  26. package/remote-fast/osx-x64/MacScreenCaptureKitH264.swift +339 -339
  27. package/remote-fast/osx-x64/MacSystemAudioCapture.swift +214 -214
  28. package/remote-fast/osx-x64/UnixRawCaptureHelper.mjs +80 -80
  29. package/remote-fast/osx-x64/livedesk-raw-capture-resampler.mjs +73 -73
  30. package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
  31. package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
  32. package/remote-hub.js +3698 -3698
  33. package/scripts/auth-session-smoke.mjs +262 -262
  34. package/scripts/board-render-ownership-smoke.mjs +85 -85
  35. package/scripts/codex-model-catalog-smoke.mjs +150 -150
  36. package/scripts/codex-runtime-home-smoke.mjs +58 -58
  37. package/scripts/codex-sdk-image-live-smoke.mjs +43 -43
  38. package/scripts/codex-sdk-image-runtime-smoke.mjs +122 -122
  39. package/scripts/codex-sdk-runtime-smoke.mjs +89 -89
  40. package/scripts/desktop-update-publisher-smoke.mjs +89 -89
  41. package/scripts/desktop-update-worker-smoke.mjs +72 -72
  42. package/scripts/desktop-workspace-state-smoke.mjs +81 -81
  43. package/scripts/drive-installed-update-smoke.mjs +67 -67
  44. package/scripts/npm-fresh-install-smoke.mjs +216 -216
  45. package/scripts/publish-mindexec-desktop-updates.mjs +224 -224
  46. package/scripts/remote-agent-managed-smoke.mjs +318 -318
  47. package/scripts/remote-agent-package-smoke.mjs +64 -64
  48. package/scripts/remote-agent-ws-smoke.mjs +269 -269
  49. package/scripts/remote-fast-live-rate-smoke.mjs +343 -343
  50. package/scripts/remote-fast-mdm-browser-smoke.mjs +453 -453
  51. package/scripts/remote-fleet-render-smoke.mjs +1350 -1350
  52. package/scripts/remote-frame-ws-smoke.mjs +234 -234
  53. package/scripts/remote-http-smoke.mjs +592 -592
  54. package/scripts/remote-hub-identity-smoke.mjs +146 -146
  55. package/scripts/remote-hub-scale-smoke.mjs +124 -124
  56. package/scripts/remote-hub-smoke.mjs +699 -699
  57. package/scripts/remote-input-ws-smoke.mjs +263 -263
  58. package/scripts/remote-registry-follower-smoke.mjs +815 -815
  59. package/scripts/setup-tree-sitter-grammars.mjs +59 -59
  60. package/server.js +7690 -7690
  61. package/start-bridge.bat +32 -32
  62. package/start-bridge.sh +81 -81
  63. package/wwwroot/_content/MindExecution.Plugins.Admin/css/admin-dashboard.css +546 -546
  64. package/wwwroot/_content/MindExecution.Plugins.YouTube/css/youtube-search.css +251 -251
  65. package/wwwroot/_content/MindExecution.Shared/css/app.css +1 -1
  66. package/wwwroot/_content/MindExecution.Shared/css/mind-map-overrides.css +3789 -3789
  67. package/wwwroot/_content/MindExecution.Shared/js/agent-visualization.js +27 -27
  68. package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +1449 -1449
  69. package/wwwroot/_content/MindExecution.Shared/js/code-master.js +8316 -8316
  70. package/wwwroot/_content/MindExecution.Shared/js/file-system-helper.js +338 -338
  71. package/wwwroot/_content/MindExecution.Shared/js/marked.min.js +69 -69
  72. package/wwwroot/_content/MindExecution.Shared/js/mind-map-animated-image-preview.js +270 -270
  73. package/wwwroot/_content/MindExecution.Shared/js/mind-map-automation-edge-motion.js +170 -170
  74. package/wwwroot/_content/MindExecution.Shared/js/mind-map-board-render-ownership.js +81 -81
  75. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +10506 -10506
  76. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-hotpath.js +902 -902
  77. package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +24637 -24637
  78. package/wwwroot/_content/MindExecution.Shared/js/mind-map-dev-guards.js +325 -325
  79. package/wwwroot/_content/MindExecution.Shared/js/mind-map-dnd.js +1491 -1491
  80. package/wwwroot/_content/MindExecution.Shared/js/mind-map-glow-shader.js +70 -70
  81. package/wwwroot/_content/MindExecution.Shared/js/mind-map-image-policy.js +218 -218
  82. package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +7065 -7065
  83. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js +160 -160
  84. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +9956 -9956
  85. package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-video-placeholder.js +107 -107
  86. package/wwwroot/_content/MindExecution.Shared/js/mind-map-logic-workers.js +1004 -1004
  87. package/wwwroot/_content/MindExecution.Shared/js/mind-map-menu-manager.js +1351 -1351
  88. package/wwwroot/_content/MindExecution.Shared/js/mind-map-multi-select.js +865 -865
  89. package/wwwroot/_content/MindExecution.Shared/js/mind-map-node-search-worker.js +554 -554
  90. package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +4744 -4744
  91. package/wwwroot/_content/MindExecution.Shared/js/mind-map-normal-boundary-optimizer.js +624 -624
  92. package/wwwroot/_content/MindExecution.Shared/js/mind-map-object-manager.js +241 -241
  93. package/wwwroot/_content/MindExecution.Shared/js/mind-map-pipeline.js +2290 -2290
  94. package/wwwroot/_content/MindExecution.Shared/js/mind-map-remote-codecs.js +202 -202
  95. package/wwwroot/_content/MindExecution.Shared/js/mind-map-render-plan.js +1971 -1971
  96. package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-lod-system.js +93 -93
  97. package/wwwroot/_content/MindExecution.Shared/js/mind-map-texture-factory.js +2391 -2391
  98. package/wwwroot/_content/MindExecution.Shared/js/mind-map-video-playback-controls.js +95 -95
  99. package/wwwroot/_content/MindExecution.Shared/js/mind-map-visibility-worker.js +895 -895
  100. package/wwwroot/_content/MindExecution.Shared/js/mindmap-toolbar.js +636 -636
  101. package/wwwroot/_content/MindExecution.Shared/js/native-drop-handler.js +45 -45
  102. package/wwwroot/_content/MindExecution.Shared/js/plan-master.js +117 -117
  103. package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +114 -114
  104. package/wwwroot/_content/MindExecution.Shared/js/texture-worker-manager.js +10 -10
  105. package/wwwroot/_content/MindExecution.Shared/js/three.min.js +6 -6
  106. package/wwwroot/_content/MindExecution.Shared/js/token-manager.js +7 -7
  107. package/wwwroot/_content/MindExecution.Shared/js/troika-bundle.js +6 -6
  108. package/wwwroot/_content/MindExecution.Shared/js/troika-bundle.js.map +2 -2
  109. package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/css/all.min.css +8 -8
  110. package/wwwroot/_content/MindExecution.Shared/models/vocab.txt +30522 -30522
  111. package/wwwroot/_framework/{Google.Protobuf.9h59ukbel7.dll → Google.Protobuf.33g2gb5is0.dll} +0 -0
  112. package/wwwroot/_framework/{MindExecution.Core.ty1xewqp36.dll → MindExecution.Core.z100xo4mg0.dll} +0 -0
  113. package/wwwroot/_framework/{MindExecution.Kernel.h7rqjoo69o.dll → MindExecution.Kernel.i9cldrx8yc.dll} +0 -0
  114. package/wwwroot/_framework/{MindExecution.Plugins.Admin.wrfrcvhjde.dll → MindExecution.Plugins.Admin.48lzqddb0a.dll} +0 -0
  115. package/wwwroot/_framework/{MindExecution.Plugins.Business.csbcyjurdh.dll → MindExecution.Plugins.Business.7m8u1q142p.dll} +0 -0
  116. package/wwwroot/_framework/{MindExecution.Plugins.Concept.buomiysqjn.dll → MindExecution.Plugins.Concept.cl5wmr53od.dll} +0 -0
  117. package/wwwroot/_framework/{MindExecution.Plugins.Directory.7k00i2v769.dll → MindExecution.Plugins.Directory.slipi39041.dll} +0 -0
  118. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.85i5ocraro.dll → MindExecution.Plugins.PlanMaster.qfge05l671.dll} +0 -0
  119. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.nbolrfakte.dll → MindExecution.Plugins.YouTube.tn7v29ut77.dll} +0 -0
  120. package/wwwroot/_framework/{MindExecution.Shared.nqh4porv7x.dll → MindExecution.Shared.rjqlf0umjn.dll} +0 -0
  121. package/wwwroot/_framework/{MindExecution.Web.211q3bf4mr.dll → MindExecution.Web.rwawrxxk38.dll} +0 -0
  122. package/wwwroot/_framework/blazor.boot.json +23 -23
  123. package/wwwroot/_headers +40 -40
  124. package/wwwroot/_redirects +1 -1
  125. package/wwwroot/index.html +772 -772
  126. package/wwwroot/js/marketing-tool.js +180 -180
  127. package/wwwroot/manifest.webmanifest +23 -23
  128. package/wwwroot/service-worker-assets.js +78 -106
  129. package/wwwroot/service-worker.js +33 -33
  130. package/tree-sitter-grammars/README.md +0 -18
  131. package/tree-sitter-grammars/tree-sitter-c_sharp.wasm +0 -0
  132. package/tree-sitter-grammars/tree-sitter-go.wasm +0 -0
  133. package/tree-sitter-grammars/tree-sitter-java.wasm +0 -0
  134. package/tree-sitter-grammars/tree-sitter-javascript.wasm +0 -0
  135. package/tree-sitter-grammars/tree-sitter-python.wasm +0 -0
  136. package/tree-sitter-grammars/tree-sitter-rust.wasm +0 -0
  137. package/tree-sitter-grammars/tree-sitter-tsx.wasm +0 -0
  138. package/tree-sitter-grammars/tree-sitter-typescript.wasm +0 -0
  139. package/wwwroot/_content/MindExecution.Plugins.Directory/background.png +0 -0
  140. package/wwwroot/_content/MindExecution.Shared/fonts/NotoSansKR-Bold.ttf +0 -0
  141. package/wwwroot/_content/MindExecution.Shared/fonts/NotoSansKR-Regular.ttf +0 -0
  142. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js.backup +0 -1059
  143. package/wwwroot/_content/MindExecution.Shared/js/mind-map-dnd.js.bak +0 -434
  144. package/wwwroot/_content/MindExecution.Shared/js/mind-map-object-manager.js.backup +0 -372
  145. package/wwwroot/_content/MindExecution.Shared/js/mind-map-texture-factory.js.backup +0 -1258
@@ -1,546 +1,546 @@
1
- .admin-dashboard-shell {
2
- max-width: 1400px;
3
- margin: 0 auto;
4
- padding: 14px 24px 24px;
5
- color: #e5e7eb;
6
- }
7
-
8
- .admin-dashboard-header {
9
- display: flex;
10
- justify-content: space-between;
11
- gap: 24px;
12
- align-items: flex-start;
13
- margin-bottom: 18px;
14
- }
15
-
16
- .eyebrow {
17
- font-size: 0.75rem;
18
- text-transform: uppercase;
19
- letter-spacing: 0.08em;
20
- color: #93c5fd;
21
- margin-bottom: 8px;
22
- }
23
-
24
- .admin-dashboard-header h1 {
25
- margin: 0;
26
- font-size: 2rem;
27
- color: #f8fafc;
28
- }
29
-
30
- .dashboard-subtitle {
31
- margin: 8px 0 0;
32
- color: #94a3b8;
33
- max-width: 720px;
34
- }
35
-
36
- .header-actions {
37
- display: flex;
38
- flex-wrap: wrap;
39
- justify-content: flex-end;
40
- gap: 10px;
41
- }
42
-
43
- .admin-dashboard-badge,
44
- .meta-chip,
45
- .status-pill,
46
- .tag {
47
- display: inline-flex;
48
- align-items: center;
49
- gap: 8px;
50
- border-radius: 999px;
51
- padding: 8px 12px;
52
- font-size: 0.8125rem;
53
- line-height: 1;
54
- white-space: nowrap;
55
- }
56
-
57
- .admin-dashboard-badge {
58
- background: rgba(59, 130, 246, 0.16);
59
- border: 1px solid rgba(59, 130, 246, 0.3);
60
- color: #bfdbfe;
61
- text-transform: capitalize;
62
- }
63
-
64
- .meta-chip,
65
- .status-pill,
66
- .tag {
67
- background: rgba(15, 23, 42, 0.65);
68
- border: 1px solid rgba(148, 163, 184, 0.18);
69
- color: #cbd5e1;
70
- }
71
-
72
- .status-strip {
73
- display: flex;
74
- flex-wrap: wrap;
75
- gap: 10px;
76
- margin-bottom: 18px;
77
- }
78
-
79
- .status-pill.accent {
80
- border-color: rgba(34, 197, 94, 0.24);
81
- color: #bbf7d0;
82
- }
83
-
84
- .alert-stack {
85
- display: flex;
86
- flex-direction: column;
87
- gap: 10px;
88
- margin-bottom: 18px;
89
- }
90
-
91
- .admin-alert-banner {
92
- display: flex;
93
- gap: 12px;
94
- align-items: flex-start;
95
- border-radius: 10px;
96
- padding: 14px 16px;
97
- border: 1px solid transparent;
98
- }
99
-
100
- .admin-alert-banner.warning {
101
- background: rgba(245, 158, 11, 0.12);
102
- border-color: rgba(245, 158, 11, 0.25);
103
- color: #fcd34d;
104
- }
105
-
106
- .admin-alert-banner.critical {
107
- background: rgba(239, 68, 68, 0.12);
108
- border-color: rgba(239, 68, 68, 0.25);
109
- color: #fca5a5;
110
- }
111
-
112
- .dashboard-tabs {
113
- display: flex;
114
- flex-wrap: wrap;
115
- gap: 8px;
116
- margin-bottom: 20px;
117
- }
118
-
119
- .tab-button {
120
- display: inline-flex;
121
- align-items: center;
122
- gap: 8px;
123
- padding: 10px 14px;
124
- border-radius: 10px;
125
- border: 1px solid rgba(148, 163, 184, 0.18);
126
- background: rgba(15, 23, 42, 0.6);
127
- color: #cbd5e1;
128
- cursor: pointer;
129
- transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
130
- }
131
-
132
- .tab-button:hover {
133
- border-color: rgba(96, 165, 250, 0.4);
134
- color: #eff6ff;
135
- }
136
-
137
- .tab-button.active {
138
- background: rgba(37, 99, 235, 0.2);
139
- border-color: rgba(96, 165, 250, 0.5);
140
- color: #eff6ff;
141
- }
142
-
143
- .admin-kpi-grid {
144
- display: grid;
145
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
146
- gap: 12px;
147
- margin-bottom: 20px;
148
- }
149
-
150
- .admin-kpi-card,
151
- .panel,
152
- .admin-dashboard-access-card {
153
- background: rgba(15, 23, 42, 0.72);
154
- border: 1px solid rgba(148, 163, 184, 0.16);
155
- border-radius: 10px;
156
- }
157
-
158
- .admin-kpi-card {
159
- min-height: 108px;
160
- padding: 16px;
161
- display: flex;
162
- flex-direction: column;
163
- justify-content: space-between;
164
- }
165
-
166
- .admin-kpi-label {
167
- color: #94a3b8;
168
- font-size: 0.8125rem;
169
- }
170
-
171
- .admin-kpi-value {
172
- font-size: 1.45rem;
173
- font-weight: 700;
174
- color: #f8fafc;
175
- }
176
-
177
- .panel-grid {
178
- display: grid;
179
- gap: 16px;
180
- margin-bottom: 16px;
181
- }
182
-
183
- .panel-grid.two-up {
184
- grid-template-columns: repeat(2, minmax(0, 1fr));
185
- }
186
-
187
- .panel-grid.three-up {
188
- grid-template-columns: repeat(3, minmax(0, 1fr));
189
- }
190
-
191
- .panel {
192
- padding: 18px;
193
- margin-bottom: 16px;
194
- }
195
-
196
- .panel-header {
197
- display: flex;
198
- justify-content: space-between;
199
- gap: 12px;
200
- align-items: center;
201
- margin-bottom: 14px;
202
- }
203
-
204
- .panel-header h3 {
205
- margin: 0;
206
- font-size: 1rem;
207
- color: #f8fafc;
208
- }
209
-
210
- .panel-note {
211
- font-size: 0.8125rem;
212
- color: #94a3b8;
213
- }
214
-
215
- .metric-list {
216
- display: flex;
217
- flex-direction: column;
218
- gap: 10px;
219
- }
220
-
221
- .metric-list.compact {
222
- gap: 8px;
223
- }
224
-
225
- .metric-row,
226
- .goal-row {
227
- display: flex;
228
- justify-content: space-between;
229
- gap: 12px;
230
- align-items: center;
231
- }
232
-
233
- .metric-row span,
234
- .goal-row span {
235
- color: #cbd5e1;
236
- }
237
-
238
- .metric-row strong,
239
- .goal-row strong {
240
- color: #f8fafc;
241
- text-align: right;
242
- }
243
-
244
- .admin-mini-chart {
245
- display: flex;
246
- align-items: flex-end;
247
- gap: 8px;
248
- height: 180px;
249
- padding: 8px 4px 26px;
250
- }
251
-
252
- .admin-bar-item {
253
- flex: 1;
254
- display: flex;
255
- flex-direction: column;
256
- align-items: center;
257
- justify-content: flex-end;
258
- min-width: 0;
259
- height: 100%;
260
- position: relative;
261
- }
262
-
263
- .admin-bar-item .bar {
264
- width: 100%;
265
- max-width: 22px;
266
- border-radius: 6px 6px 0 0;
267
- background: linear-gradient(180deg, #60a5fa, #2563eb);
268
- }
269
-
270
- .admin-revenue-chart .bar {
271
- background: linear-gradient(180deg, #34d399, #059669);
272
- }
273
-
274
- .bar-label {
275
- position: absolute;
276
- bottom: -22px;
277
- font-size: 0.68rem;
278
- color: #94a3b8;
279
- transform: rotate(-45deg);
280
- transform-origin: left center;
281
- }
282
-
283
- .admin-settings-grid {
284
- display: grid;
285
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
286
- gap: 14px;
287
- }
288
-
289
- .admin-setting-item {
290
- display: flex;
291
- flex-direction: column;
292
- gap: 8px;
293
- }
294
-
295
- .admin-setting-item label {
296
- font-size: 0.8125rem;
297
- color: #94a3b8;
298
- }
299
-
300
- .admin-setting-item input,
301
- .admin-setting-item select {
302
- width: 100%;
303
- border-radius: 10px;
304
- border: 1px solid rgba(148, 163, 184, 0.18);
305
- background: rgba(2, 6, 23, 0.72);
306
- color: #f8fafc;
307
- padding: 12px 14px;
308
- }
309
-
310
- .admin-setting-item input:focus,
311
- .admin-setting-item select:focus {
312
- outline: none;
313
- border-color: rgba(96, 165, 250, 0.56);
314
- box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.14);
315
- }
316
-
317
- .button-row {
318
- display: flex;
319
- flex-wrap: wrap;
320
- gap: 10px;
321
- margin-top: 16px;
322
- }
323
-
324
- .btn-primary,
325
- .btn-secondary,
326
- .btn-danger {
327
- display: inline-flex;
328
- align-items: center;
329
- justify-content: center;
330
- gap: 8px;
331
- border-radius: 10px;
332
- padding: 10px 14px;
333
- font-size: 0.875rem;
334
- font-weight: 600;
335
- cursor: pointer;
336
- transition: opacity 0.15s ease, background 0.15s ease, border-color 0.15s ease;
337
- }
338
-
339
- .btn-primary {
340
- background: #2563eb;
341
- color: #eff6ff;
342
- border: 1px solid #2563eb;
343
- }
344
-
345
- .btn-secondary {
346
- background: rgba(15, 23, 42, 0.72);
347
- color: #e2e8f0;
348
- border: 1px solid rgba(148, 163, 184, 0.18);
349
- }
350
-
351
- .btn-danger {
352
- background: rgba(127, 29, 29, 0.25);
353
- color: #fecaca;
354
- border: 1px solid rgba(248, 113, 113, 0.3);
355
- }
356
-
357
- .btn-primary:disabled,
358
- .btn-secondary:disabled,
359
- .btn-danger:disabled {
360
- opacity: 0.6;
361
- cursor: not-allowed;
362
- }
363
-
364
- .admin-data-table {
365
- width: 100%;
366
- border-collapse: collapse;
367
- }
368
-
369
- .admin-data-table th,
370
- .admin-data-table td {
371
- padding: 11px 10px;
372
- border-bottom: 1px solid rgba(148, 163, 184, 0.12);
373
- text-align: left;
374
- vertical-align: top;
375
- }
376
-
377
- .admin-data-table th {
378
- font-size: 0.75rem;
379
- text-transform: uppercase;
380
- letter-spacing: 0.06em;
381
- color: #94a3b8;
382
- }
383
-
384
- .admin-data-table td {
385
- color: #e2e8f0;
386
- font-size: 0.875rem;
387
- }
388
-
389
- .admin-compact-table th,
390
- .admin-compact-table td {
391
- padding: 9px 8px;
392
- }
393
-
394
- .funnel-table td:nth-child(2),
395
- .funnel-table td:nth-child(3),
396
- .funnel-table td:nth-child(4) {
397
- font-variant-numeric: tabular-nums;
398
- }
399
-
400
- .mono {
401
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
402
- }
403
-
404
- .goal-list {
405
- display: flex;
406
- flex-direction: column;
407
- gap: 12px;
408
- }
409
-
410
- .goal-item {
411
- display: flex;
412
- flex-direction: column;
413
- gap: 8px;
414
- }
415
-
416
- .admin-progress-track {
417
- width: 100%;
418
- height: 8px;
419
- background: rgba(51, 65, 85, 0.8);
420
- border-radius: 999px;
421
- overflow: hidden;
422
- }
423
-
424
- .admin-progress-fill {
425
- height: 100%;
426
- background: linear-gradient(90deg, #34d399, #10b981);
427
- }
428
-
429
- .tag-list {
430
- display: flex;
431
- flex-wrap: wrap;
432
- gap: 8px;
433
- margin-top: 16px;
434
- }
435
-
436
- .tag {
437
- background: rgba(30, 41, 59, 0.88);
438
- color: #bfdbfe;
439
- }
440
-
441
- .timeline-list {
442
- display: flex;
443
- flex-direction: column;
444
- gap: 12px;
445
- }
446
-
447
- .timeline-item {
448
- display: grid;
449
- grid-template-columns: 100px minmax(0, 1fr);
450
- gap: 14px;
451
- padding-top: 12px;
452
- border-top: 1px solid rgba(148, 163, 184, 0.1);
453
- }
454
-
455
- .timeline-item:first-child {
456
- padding-top: 0;
457
- border-top: none;
458
- }
459
-
460
- .timeline-time {
461
- color: #94a3b8;
462
- font-size: 0.75rem;
463
- font-variant-numeric: tabular-nums;
464
- }
465
-
466
- .timeline-body {
467
- color: #e2e8f0;
468
- }
469
-
470
- .timeline-detail {
471
- margin-top: 4px;
472
- color: #94a3b8;
473
- font-size: 0.8125rem;
474
- }
475
-
476
- .empty-state {
477
- margin: 0;
478
- padding: 28px 0;
479
- color: #94a3b8;
480
- text-align: center;
481
- }
482
-
483
- .admin-dashboard-access-denied {
484
- min-height: 80vh;
485
- display: flex;
486
- align-items: center;
487
- justify-content: center;
488
- padding: 24px;
489
- }
490
-
491
- .admin-dashboard-access-card {
492
- max-width: 480px;
493
- text-align: center;
494
- padding: 36px 28px;
495
- }
496
-
497
- .admin-dashboard-access-card i {
498
- font-size: 3.25rem;
499
- color: #fca5a5;
500
- margin-bottom: 18px;
501
- }
502
-
503
- .admin-dashboard-access-card h2 {
504
- margin: 0 0 10px;
505
- color: #f8fafc;
506
- }
507
-
508
- .admin-dashboard-access-card p {
509
- margin: 0 0 20px;
510
- color: #94a3b8;
511
- }
512
-
513
- @media (max-width: 1080px) {
514
- .panel-grid.two-up,
515
- .panel-grid.three-up {
516
- grid-template-columns: 1fr;
517
- }
518
- }
519
-
520
- @media (max-width: 768px) {
521
- .admin-dashboard-shell {
522
- padding: 12px 16px 16px;
523
- }
524
-
525
- .admin-dashboard-header {
526
- flex-direction: column;
527
- }
528
-
529
- .header-actions {
530
- justify-content: flex-start;
531
- }
532
-
533
- .admin-kpi-grid {
534
- grid-template-columns: repeat(2, minmax(0, 1fr));
535
- }
536
-
537
- .timeline-item {
538
- grid-template-columns: 1fr;
539
- }
540
- }
541
-
542
- @media (max-width: 560px) {
543
- .admin-kpi-grid {
544
- grid-template-columns: 1fr;
545
- }
546
- }
1
+ .admin-dashboard-shell {
2
+ max-width: 1400px;
3
+ margin: 0 auto;
4
+ padding: 14px 24px 24px;
5
+ color: #e5e7eb;
6
+ }
7
+
8
+ .admin-dashboard-header {
9
+ display: flex;
10
+ justify-content: space-between;
11
+ gap: 24px;
12
+ align-items: flex-start;
13
+ margin-bottom: 18px;
14
+ }
15
+
16
+ .eyebrow {
17
+ font-size: 0.75rem;
18
+ text-transform: uppercase;
19
+ letter-spacing: 0.08em;
20
+ color: #93c5fd;
21
+ margin-bottom: 8px;
22
+ }
23
+
24
+ .admin-dashboard-header h1 {
25
+ margin: 0;
26
+ font-size: 2rem;
27
+ color: #f8fafc;
28
+ }
29
+
30
+ .dashboard-subtitle {
31
+ margin: 8px 0 0;
32
+ color: #94a3b8;
33
+ max-width: 720px;
34
+ }
35
+
36
+ .header-actions {
37
+ display: flex;
38
+ flex-wrap: wrap;
39
+ justify-content: flex-end;
40
+ gap: 10px;
41
+ }
42
+
43
+ .admin-dashboard-badge,
44
+ .meta-chip,
45
+ .status-pill,
46
+ .tag {
47
+ display: inline-flex;
48
+ align-items: center;
49
+ gap: 8px;
50
+ border-radius: 999px;
51
+ padding: 8px 12px;
52
+ font-size: 0.8125rem;
53
+ line-height: 1;
54
+ white-space: nowrap;
55
+ }
56
+
57
+ .admin-dashboard-badge {
58
+ background: rgba(59, 130, 246, 0.16);
59
+ border: 1px solid rgba(59, 130, 246, 0.3);
60
+ color: #bfdbfe;
61
+ text-transform: capitalize;
62
+ }
63
+
64
+ .meta-chip,
65
+ .status-pill,
66
+ .tag {
67
+ background: rgba(15, 23, 42, 0.65);
68
+ border: 1px solid rgba(148, 163, 184, 0.18);
69
+ color: #cbd5e1;
70
+ }
71
+
72
+ .status-strip {
73
+ display: flex;
74
+ flex-wrap: wrap;
75
+ gap: 10px;
76
+ margin-bottom: 18px;
77
+ }
78
+
79
+ .status-pill.accent {
80
+ border-color: rgba(34, 197, 94, 0.24);
81
+ color: #bbf7d0;
82
+ }
83
+
84
+ .alert-stack {
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: 10px;
88
+ margin-bottom: 18px;
89
+ }
90
+
91
+ .admin-alert-banner {
92
+ display: flex;
93
+ gap: 12px;
94
+ align-items: flex-start;
95
+ border-radius: 10px;
96
+ padding: 14px 16px;
97
+ border: 1px solid transparent;
98
+ }
99
+
100
+ .admin-alert-banner.warning {
101
+ background: rgba(245, 158, 11, 0.12);
102
+ border-color: rgba(245, 158, 11, 0.25);
103
+ color: #fcd34d;
104
+ }
105
+
106
+ .admin-alert-banner.critical {
107
+ background: rgba(239, 68, 68, 0.12);
108
+ border-color: rgba(239, 68, 68, 0.25);
109
+ color: #fca5a5;
110
+ }
111
+
112
+ .dashboard-tabs {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 8px;
116
+ margin-bottom: 20px;
117
+ }
118
+
119
+ .tab-button {
120
+ display: inline-flex;
121
+ align-items: center;
122
+ gap: 8px;
123
+ padding: 10px 14px;
124
+ border-radius: 10px;
125
+ border: 1px solid rgba(148, 163, 184, 0.18);
126
+ background: rgba(15, 23, 42, 0.6);
127
+ color: #cbd5e1;
128
+ cursor: pointer;
129
+ transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
130
+ }
131
+
132
+ .tab-button:hover {
133
+ border-color: rgba(96, 165, 250, 0.4);
134
+ color: #eff6ff;
135
+ }
136
+
137
+ .tab-button.active {
138
+ background: rgba(37, 99, 235, 0.2);
139
+ border-color: rgba(96, 165, 250, 0.5);
140
+ color: #eff6ff;
141
+ }
142
+
143
+ .admin-kpi-grid {
144
+ display: grid;
145
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
146
+ gap: 12px;
147
+ margin-bottom: 20px;
148
+ }
149
+
150
+ .admin-kpi-card,
151
+ .panel,
152
+ .admin-dashboard-access-card {
153
+ background: rgba(15, 23, 42, 0.72);
154
+ border: 1px solid rgba(148, 163, 184, 0.16);
155
+ border-radius: 10px;
156
+ }
157
+
158
+ .admin-kpi-card {
159
+ min-height: 108px;
160
+ padding: 16px;
161
+ display: flex;
162
+ flex-direction: column;
163
+ justify-content: space-between;
164
+ }
165
+
166
+ .admin-kpi-label {
167
+ color: #94a3b8;
168
+ font-size: 0.8125rem;
169
+ }
170
+
171
+ .admin-kpi-value {
172
+ font-size: 1.45rem;
173
+ font-weight: 700;
174
+ color: #f8fafc;
175
+ }
176
+
177
+ .panel-grid {
178
+ display: grid;
179
+ gap: 16px;
180
+ margin-bottom: 16px;
181
+ }
182
+
183
+ .panel-grid.two-up {
184
+ grid-template-columns: repeat(2, minmax(0, 1fr));
185
+ }
186
+
187
+ .panel-grid.three-up {
188
+ grid-template-columns: repeat(3, minmax(0, 1fr));
189
+ }
190
+
191
+ .panel {
192
+ padding: 18px;
193
+ margin-bottom: 16px;
194
+ }
195
+
196
+ .panel-header {
197
+ display: flex;
198
+ justify-content: space-between;
199
+ gap: 12px;
200
+ align-items: center;
201
+ margin-bottom: 14px;
202
+ }
203
+
204
+ .panel-header h3 {
205
+ margin: 0;
206
+ font-size: 1rem;
207
+ color: #f8fafc;
208
+ }
209
+
210
+ .panel-note {
211
+ font-size: 0.8125rem;
212
+ color: #94a3b8;
213
+ }
214
+
215
+ .metric-list {
216
+ display: flex;
217
+ flex-direction: column;
218
+ gap: 10px;
219
+ }
220
+
221
+ .metric-list.compact {
222
+ gap: 8px;
223
+ }
224
+
225
+ .metric-row,
226
+ .goal-row {
227
+ display: flex;
228
+ justify-content: space-between;
229
+ gap: 12px;
230
+ align-items: center;
231
+ }
232
+
233
+ .metric-row span,
234
+ .goal-row span {
235
+ color: #cbd5e1;
236
+ }
237
+
238
+ .metric-row strong,
239
+ .goal-row strong {
240
+ color: #f8fafc;
241
+ text-align: right;
242
+ }
243
+
244
+ .admin-mini-chart {
245
+ display: flex;
246
+ align-items: flex-end;
247
+ gap: 8px;
248
+ height: 180px;
249
+ padding: 8px 4px 26px;
250
+ }
251
+
252
+ .admin-bar-item {
253
+ flex: 1;
254
+ display: flex;
255
+ flex-direction: column;
256
+ align-items: center;
257
+ justify-content: flex-end;
258
+ min-width: 0;
259
+ height: 100%;
260
+ position: relative;
261
+ }
262
+
263
+ .admin-bar-item .bar {
264
+ width: 100%;
265
+ max-width: 22px;
266
+ border-radius: 6px 6px 0 0;
267
+ background: linear-gradient(180deg, #60a5fa, #2563eb);
268
+ }
269
+
270
+ .admin-revenue-chart .bar {
271
+ background: linear-gradient(180deg, #34d399, #059669);
272
+ }
273
+
274
+ .bar-label {
275
+ position: absolute;
276
+ bottom: -22px;
277
+ font-size: 0.68rem;
278
+ color: #94a3b8;
279
+ transform: rotate(-45deg);
280
+ transform-origin: left center;
281
+ }
282
+
283
+ .admin-settings-grid {
284
+ display: grid;
285
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
286
+ gap: 14px;
287
+ }
288
+
289
+ .admin-setting-item {
290
+ display: flex;
291
+ flex-direction: column;
292
+ gap: 8px;
293
+ }
294
+
295
+ .admin-setting-item label {
296
+ font-size: 0.8125rem;
297
+ color: #94a3b8;
298
+ }
299
+
300
+ .admin-setting-item input,
301
+ .admin-setting-item select {
302
+ width: 100%;
303
+ border-radius: 10px;
304
+ border: 1px solid rgba(148, 163, 184, 0.18);
305
+ background: rgba(2, 6, 23, 0.72);
306
+ color: #f8fafc;
307
+ padding: 12px 14px;
308
+ }
309
+
310
+ .admin-setting-item input:focus,
311
+ .admin-setting-item select:focus {
312
+ outline: none;
313
+ border-color: rgba(96, 165, 250, 0.56);
314
+ box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.14);
315
+ }
316
+
317
+ .button-row {
318
+ display: flex;
319
+ flex-wrap: wrap;
320
+ gap: 10px;
321
+ margin-top: 16px;
322
+ }
323
+
324
+ .btn-primary,
325
+ .btn-secondary,
326
+ .btn-danger {
327
+ display: inline-flex;
328
+ align-items: center;
329
+ justify-content: center;
330
+ gap: 8px;
331
+ border-radius: 10px;
332
+ padding: 10px 14px;
333
+ font-size: 0.875rem;
334
+ font-weight: 600;
335
+ cursor: pointer;
336
+ transition: opacity 0.15s ease, background 0.15s ease, border-color 0.15s ease;
337
+ }
338
+
339
+ .btn-primary {
340
+ background: #2563eb;
341
+ color: #eff6ff;
342
+ border: 1px solid #2563eb;
343
+ }
344
+
345
+ .btn-secondary {
346
+ background: rgba(15, 23, 42, 0.72);
347
+ color: #e2e8f0;
348
+ border: 1px solid rgba(148, 163, 184, 0.18);
349
+ }
350
+
351
+ .btn-danger {
352
+ background: rgba(127, 29, 29, 0.25);
353
+ color: #fecaca;
354
+ border: 1px solid rgba(248, 113, 113, 0.3);
355
+ }
356
+
357
+ .btn-primary:disabled,
358
+ .btn-secondary:disabled,
359
+ .btn-danger:disabled {
360
+ opacity: 0.6;
361
+ cursor: not-allowed;
362
+ }
363
+
364
+ .admin-data-table {
365
+ width: 100%;
366
+ border-collapse: collapse;
367
+ }
368
+
369
+ .admin-data-table th,
370
+ .admin-data-table td {
371
+ padding: 11px 10px;
372
+ border-bottom: 1px solid rgba(148, 163, 184, 0.12);
373
+ text-align: left;
374
+ vertical-align: top;
375
+ }
376
+
377
+ .admin-data-table th {
378
+ font-size: 0.75rem;
379
+ text-transform: uppercase;
380
+ letter-spacing: 0.06em;
381
+ color: #94a3b8;
382
+ }
383
+
384
+ .admin-data-table td {
385
+ color: #e2e8f0;
386
+ font-size: 0.875rem;
387
+ }
388
+
389
+ .admin-compact-table th,
390
+ .admin-compact-table td {
391
+ padding: 9px 8px;
392
+ }
393
+
394
+ .funnel-table td:nth-child(2),
395
+ .funnel-table td:nth-child(3),
396
+ .funnel-table td:nth-child(4) {
397
+ font-variant-numeric: tabular-nums;
398
+ }
399
+
400
+ .mono {
401
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
402
+ }
403
+
404
+ .goal-list {
405
+ display: flex;
406
+ flex-direction: column;
407
+ gap: 12px;
408
+ }
409
+
410
+ .goal-item {
411
+ display: flex;
412
+ flex-direction: column;
413
+ gap: 8px;
414
+ }
415
+
416
+ .admin-progress-track {
417
+ width: 100%;
418
+ height: 8px;
419
+ background: rgba(51, 65, 85, 0.8);
420
+ border-radius: 999px;
421
+ overflow: hidden;
422
+ }
423
+
424
+ .admin-progress-fill {
425
+ height: 100%;
426
+ background: linear-gradient(90deg, #34d399, #10b981);
427
+ }
428
+
429
+ .tag-list {
430
+ display: flex;
431
+ flex-wrap: wrap;
432
+ gap: 8px;
433
+ margin-top: 16px;
434
+ }
435
+
436
+ .tag {
437
+ background: rgba(30, 41, 59, 0.88);
438
+ color: #bfdbfe;
439
+ }
440
+
441
+ .timeline-list {
442
+ display: flex;
443
+ flex-direction: column;
444
+ gap: 12px;
445
+ }
446
+
447
+ .timeline-item {
448
+ display: grid;
449
+ grid-template-columns: 100px minmax(0, 1fr);
450
+ gap: 14px;
451
+ padding-top: 12px;
452
+ border-top: 1px solid rgba(148, 163, 184, 0.1);
453
+ }
454
+
455
+ .timeline-item:first-child {
456
+ padding-top: 0;
457
+ border-top: none;
458
+ }
459
+
460
+ .timeline-time {
461
+ color: #94a3b8;
462
+ font-size: 0.75rem;
463
+ font-variant-numeric: tabular-nums;
464
+ }
465
+
466
+ .timeline-body {
467
+ color: #e2e8f0;
468
+ }
469
+
470
+ .timeline-detail {
471
+ margin-top: 4px;
472
+ color: #94a3b8;
473
+ font-size: 0.8125rem;
474
+ }
475
+
476
+ .empty-state {
477
+ margin: 0;
478
+ padding: 28px 0;
479
+ color: #94a3b8;
480
+ text-align: center;
481
+ }
482
+
483
+ .admin-dashboard-access-denied {
484
+ min-height: 80vh;
485
+ display: flex;
486
+ align-items: center;
487
+ justify-content: center;
488
+ padding: 24px;
489
+ }
490
+
491
+ .admin-dashboard-access-card {
492
+ max-width: 480px;
493
+ text-align: center;
494
+ padding: 36px 28px;
495
+ }
496
+
497
+ .admin-dashboard-access-card i {
498
+ font-size: 3.25rem;
499
+ color: #fca5a5;
500
+ margin-bottom: 18px;
501
+ }
502
+
503
+ .admin-dashboard-access-card h2 {
504
+ margin: 0 0 10px;
505
+ color: #f8fafc;
506
+ }
507
+
508
+ .admin-dashboard-access-card p {
509
+ margin: 0 0 20px;
510
+ color: #94a3b8;
511
+ }
512
+
513
+ @media (max-width: 1080px) {
514
+ .panel-grid.two-up,
515
+ .panel-grid.three-up {
516
+ grid-template-columns: 1fr;
517
+ }
518
+ }
519
+
520
+ @media (max-width: 768px) {
521
+ .admin-dashboard-shell {
522
+ padding: 12px 16px 16px;
523
+ }
524
+
525
+ .admin-dashboard-header {
526
+ flex-direction: column;
527
+ }
528
+
529
+ .header-actions {
530
+ justify-content: flex-start;
531
+ }
532
+
533
+ .admin-kpi-grid {
534
+ grid-template-columns: repeat(2, minmax(0, 1fr));
535
+ }
536
+
537
+ .timeline-item {
538
+ grid-template-columns: 1fr;
539
+ }
540
+ }
541
+
542
+ @media (max-width: 560px) {
543
+ .admin-kpi-grid {
544
+ grid-template-columns: 1fr;
545
+ }
546
+ }