antigravity-claude-proxy 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/css/src/input.css +381 -211
- package/public/css/style.css +1 -1
- package/public/favicon.svg +4 -8
- package/public/index.html +78 -72
- package/public/js/components/dashboard/charts.js +17 -43
- package/public/js/components/dashboard.js +16 -21
- package/public/js/components/models.js +10 -9
- package/public/js/translations/en.js +37 -37
- package/public/js/translations/id.js +36 -36
- package/public/js/translations/pt.js +37 -37
- package/public/js/translations/tr.js +37 -37
- package/public/views/accounts.html +34 -38
- package/public/views/dashboard.html +86 -99
- package/public/views/logs.html +4 -4
- package/public/views/models.html +32 -36
- package/public/views/settings.html +50 -50
package/public/css/src/input.css
CHANGED
|
@@ -2,97 +2,178 @@
|
|
|
2
2
|
@tailwind components;
|
|
3
3
|
@tailwind utilities;
|
|
4
4
|
|
|
5
|
+
/*
|
|
6
|
+
* Design tokens.
|
|
7
|
+
* JS reads several of these by name (charts.js) and appends alpha suffixes,
|
|
8
|
+
* so every colour must stay a 6-digit hex.
|
|
9
|
+
*/
|
|
5
10
|
:root {
|
|
6
|
-
/* ===
|
|
7
|
-
--color-space-950: #
|
|
8
|
-
--color-space-900: #
|
|
9
|
-
--color-space-850: #
|
|
10
|
-
--color-space-800: #
|
|
11
|
-
--color-space-border: #
|
|
12
|
-
|
|
13
|
-
/* ===
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
--color-neon-
|
|
18
|
-
--color-neon-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
--color-neon-
|
|
22
|
-
--color-neon-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
--color-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
--color-
|
|
30
|
-
|
|
31
|
-
|
|
11
|
+
/* === Surfaces: near-black panel, darkest first === */
|
|
12
|
+
--color-space-950: #0b0c0d;
|
|
13
|
+
--color-space-900: #111214;
|
|
14
|
+
--color-space-850: #16181a;
|
|
15
|
+
--color-space-800: #1c1e21;
|
|
16
|
+
--color-space-border: #27292d;
|
|
17
|
+
|
|
18
|
+
/* === Glass-cockpit colour code (legacy token names kept for JS) ===
|
|
19
|
+
purple -> cyan : things you set
|
|
20
|
+
magenta : the one current thing
|
|
21
|
+
green/yellow/red: normal / caution / warning */
|
|
22
|
+
--color-neon-purple: #4cc9d6;
|
|
23
|
+
--color-neon-cyan: #4cc9d6;
|
|
24
|
+
--color-neon-magenta: #d45bc2;
|
|
25
|
+
--color-neon-green: #6fcf6a;
|
|
26
|
+
--color-neon-yellow: #f2a93b;
|
|
27
|
+
--color-neon-red: #ee5a4f;
|
|
28
|
+
|
|
29
|
+
--color-neon-purple-soft: #2fa3b0;
|
|
30
|
+
--color-neon-green-soft: #57b553;
|
|
31
|
+
--color-neon-cyan-soft: #2fa3b0;
|
|
32
|
+
|
|
33
|
+
/* === Model families: never share a hue with a status === */
|
|
34
|
+
--color-family-claude: #4cc9d6;
|
|
35
|
+
--color-family-gemini: #d9c39a;
|
|
36
|
+
--color-family-other: #9aa7b0;
|
|
37
|
+
|
|
38
|
+
/* === Lettering === */
|
|
39
|
+
--color-text-primary: #eceae4;
|
|
40
|
+
--color-text-secondary: #c4c2bc;
|
|
41
|
+
--color-text-tertiary: #a3a19c;
|
|
42
|
+
--color-text-quaternary: #87857f;
|
|
43
|
+
|
|
44
|
+
/* === Legacy aliases (read by charts.js) === */
|
|
32
45
|
--color-text-main: var(--color-text-secondary);
|
|
33
46
|
--color-text-dim: var(--color-text-tertiary);
|
|
34
47
|
--color-text-muted: var(--color-text-tertiary);
|
|
35
48
|
--color-text-bright: var(--color-text-primary);
|
|
36
49
|
|
|
37
|
-
|
|
38
|
-
--color-
|
|
39
|
-
--color-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
--color-chart-
|
|
44
|
-
--color-chart-
|
|
45
|
-
--color-chart-
|
|
46
|
-
--color-chart-
|
|
47
|
-
--color-chart-
|
|
48
|
-
--color-chart-
|
|
49
|
-
--color-chart-
|
|
50
|
-
--color-chart-
|
|
51
|
-
--color-chart-
|
|
52
|
-
--color-chart-
|
|
53
|
-
--color-chart-
|
|
54
|
-
--color-chart-
|
|
55
|
-
--color-chart-
|
|
56
|
-
--color-chart-
|
|
57
|
-
--color-chart-
|
|
58
|
-
|
|
50
|
+
--color-green-400: #93dc8f;
|
|
51
|
+
--color-yellow-400: #f6c06a;
|
|
52
|
+
--color-red-400: #f27e74;
|
|
53
|
+
|
|
54
|
+
/* === Chart series: Claude models in blue-greens, Gemini in sands, others in steel === */
|
|
55
|
+
--color-chart-1: #4cc9d6;
|
|
56
|
+
--color-chart-2: #7fdbe4;
|
|
57
|
+
--color-chart-3: #2fa3b0;
|
|
58
|
+
--color-chart-4: #a9e7ec;
|
|
59
|
+
--color-chart-5: #d9c39a;
|
|
60
|
+
--color-chart-6: #bfa678;
|
|
61
|
+
--color-chart-7: #ecdcbc;
|
|
62
|
+
--color-chart-8: #a08a5f;
|
|
63
|
+
--color-chart-9: #9aa7b0;
|
|
64
|
+
--color-chart-10: #c7ccd1;
|
|
65
|
+
--color-chart-11: #74828c;
|
|
66
|
+
--color-chart-12: #5fb3a0;
|
|
67
|
+
--color-chart-13: #c2a1bb;
|
|
68
|
+
--color-chart-14: #8fb7c9;
|
|
69
|
+
--color-chart-15: #b8b08f;
|
|
70
|
+
--color-chart-16: #6f97a8;
|
|
71
|
+
|
|
72
|
+
/* === Shape === */
|
|
73
|
+
--view-padding: 2rem;
|
|
74
|
+
--view-gap: 1.75rem;
|
|
75
|
+
--card-radius: 0.625rem;
|
|
76
|
+
--control-radius: 0.375rem;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media (max-width: 768px) {
|
|
80
|
+
:root {
|
|
81
|
+
--view-padding: 1rem;
|
|
82
|
+
--view-gap: 1.25rem;
|
|
83
|
+
}
|
|
59
84
|
}
|
|
60
85
|
|
|
61
86
|
[x-cloak] {
|
|
62
87
|
display: none !important;
|
|
63
88
|
}
|
|
64
89
|
|
|
65
|
-
/*
|
|
90
|
+
/* -------------------------------------------------------------------------- */
|
|
91
|
+
/* Base */
|
|
92
|
+
/* -------------------------------------------------------------------------- */
|
|
93
|
+
|
|
94
|
+
html {
|
|
95
|
+
font-feature-settings: "ss02";
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
body {
|
|
99
|
+
background-color: var(--color-space-950);
|
|
100
|
+
letter-spacing: -0.003em;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Tabular figures wherever numbers are compared side by side */
|
|
104
|
+
.font-mono,
|
|
105
|
+
.stat-value,
|
|
106
|
+
table td {
|
|
107
|
+
font-variant-numeric: tabular-nums;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
:focus-visible {
|
|
111
|
+
outline: 2px solid var(--color-neon-purple);
|
|
112
|
+
outline-offset: 2px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.btn:focus-visible,
|
|
116
|
+
.input:focus-visible,
|
|
117
|
+
.select:focus-visible,
|
|
118
|
+
.toggle:focus-visible {
|
|
119
|
+
outline: 2px solid var(--color-neon-purple);
|
|
120
|
+
outline-offset: 2px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
::selection {
|
|
124
|
+
background: rgba(76, 201, 214, 0.3);
|
|
125
|
+
color: var(--color-text-primary);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/*
|
|
129
|
+
* Small all-caps tracked labels read as template chrome.
|
|
130
|
+
* Labels across views carry `uppercase` + `tracking-*`; calm them globally
|
|
131
|
+
* so the copy (sentence case in translations) sets the tone.
|
|
132
|
+
*/
|
|
133
|
+
.uppercase.tracking-wider,
|
|
134
|
+
.uppercase.tracking-widest,
|
|
135
|
+
.uppercase.tracking-wide {
|
|
136
|
+
letter-spacing: 0.02em;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* Glows and frosted glass are replaced by flat surfaces */
|
|
140
|
+
[class*="shadow-[0_0_"] {
|
|
141
|
+
--tw-shadow: 0 0 #0000 !important;
|
|
142
|
+
--tw-shadow-colored: 0 0 #0000 !important;
|
|
143
|
+
box-shadow: none !important;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Scrollbar */
|
|
66
147
|
.custom-scrollbar {
|
|
67
148
|
scrollbar-gutter: stable;
|
|
68
149
|
}
|
|
69
150
|
|
|
70
151
|
::-webkit-scrollbar {
|
|
71
|
-
width:
|
|
72
|
-
height:
|
|
152
|
+
width: 10px;
|
|
153
|
+
height: 10px;
|
|
73
154
|
}
|
|
74
155
|
|
|
75
156
|
::-webkit-scrollbar-track {
|
|
76
|
-
background:
|
|
77
|
-
border-radius: 4px;
|
|
157
|
+
background: transparent;
|
|
78
158
|
}
|
|
79
159
|
|
|
80
160
|
::-webkit-scrollbar-thumb {
|
|
81
|
-
background:
|
|
82
|
-
border-radius:
|
|
83
|
-
border:
|
|
84
|
-
transition: background 0.2s ease;
|
|
161
|
+
background: var(--color-space-border);
|
|
162
|
+
border-radius: 999px;
|
|
163
|
+
border: 3px solid var(--color-space-950);
|
|
85
164
|
}
|
|
86
165
|
|
|
87
166
|
::-webkit-scrollbar-thumb:hover {
|
|
88
|
-
background:
|
|
89
|
-
border-color: rgba(168, 85, 247, 0.3);
|
|
167
|
+
background: #4d4d4a;
|
|
90
168
|
}
|
|
91
169
|
|
|
92
|
-
/*
|
|
170
|
+
/* -------------------------------------------------------------------------- */
|
|
171
|
+
/* Motion */
|
|
172
|
+
/* -------------------------------------------------------------------------- */
|
|
173
|
+
|
|
93
174
|
.fade-enter-active,
|
|
94
175
|
.fade-leave-active {
|
|
95
|
-
transition: opacity 0.
|
|
176
|
+
transition: opacity 0.15s ease;
|
|
96
177
|
}
|
|
97
178
|
|
|
98
179
|
.fade-enter-from,
|
|
@@ -103,58 +184,133 @@
|
|
|
103
184
|
@keyframes fadeIn {
|
|
104
185
|
from {
|
|
105
186
|
opacity: 0;
|
|
106
|
-
transform: translateY(5px);
|
|
107
187
|
}
|
|
108
188
|
to {
|
|
109
189
|
opacity: 1;
|
|
110
|
-
transform: translateY(0);
|
|
111
190
|
}
|
|
112
191
|
}
|
|
113
192
|
|
|
114
193
|
.animate-fade-in {
|
|
115
|
-
animation: fadeIn 0.
|
|
194
|
+
animation: fadeIn 0.2s ease-out forwards;
|
|
116
195
|
}
|
|
117
196
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
197
|
+
@media (prefers-reduced-motion: reduce) {
|
|
198
|
+
*,
|
|
199
|
+
*::before,
|
|
200
|
+
*::after {
|
|
201
|
+
animation-duration: 0.01ms !important;
|
|
202
|
+
animation-iteration-count: 1 !important;
|
|
203
|
+
transition-duration: 0.01ms !important;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* -------------------------------------------------------------------------- */
|
|
208
|
+
/* Shell */
|
|
209
|
+
/* -------------------------------------------------------------------------- */
|
|
210
|
+
|
|
211
|
+
.app-topbar {
|
|
212
|
+
background: var(--color-space-950);
|
|
213
|
+
border-bottom: 1px solid var(--color-space-border);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.app-sidebar {
|
|
217
|
+
background: var(--color-space-950);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.nav-section-label {
|
|
221
|
+
@apply px-5 mb-1.5 text-xs font-medium text-gray-600;
|
|
125
222
|
}
|
|
126
223
|
|
|
127
224
|
.nav-item {
|
|
128
|
-
@apply
|
|
225
|
+
@apply relative mx-3 rounded-md transition-colors duration-150;
|
|
129
226
|
}
|
|
130
227
|
|
|
131
|
-
.
|
|
132
|
-
background
|
|
228
|
+
.nav-item.active {
|
|
229
|
+
background: var(--color-space-800);
|
|
230
|
+
@apply text-white;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.nav-item.active::before {
|
|
234
|
+
content: "";
|
|
235
|
+
position: absolute;
|
|
236
|
+
left: -0.75rem;
|
|
237
|
+
top: 0.625rem;
|
|
238
|
+
bottom: 0.625rem;
|
|
239
|
+
width: 3px;
|
|
240
|
+
border-radius: 0 3px 3px 0;
|
|
241
|
+
background: var(--color-neon-magenta);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.nav-item.active svg {
|
|
245
|
+
color: var(--color-neon-magenta);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* -------------------------------------------------------------------------- */
|
|
249
|
+
/* Quota gauges */
|
|
250
|
+
/* Progress bars read as instrument tapes: square ends, a 10% tick scale */
|
|
251
|
+
/* engraved on the track, and a fill coloured only by health. */
|
|
252
|
+
/* -------------------------------------------------------------------------- */
|
|
253
|
+
|
|
254
|
+
.progress {
|
|
255
|
+
border-radius: 1px;
|
|
256
|
+
background-color: var(--color-space-800);
|
|
257
|
+
background-image: repeating-linear-gradient(
|
|
133
258
|
to right,
|
|
134
|
-
|
|
135
|
-
|
|
259
|
+
transparent 0,
|
|
260
|
+
transparent calc(10% - 1px),
|
|
261
|
+
rgba(236, 234, 228, 0.14) calc(10% - 1px),
|
|
262
|
+
rgba(236, 234, 228, 0.14) 10%
|
|
136
263
|
);
|
|
137
264
|
}
|
|
138
265
|
|
|
266
|
+
.progress::-webkit-progress-bar {
|
|
267
|
+
background: transparent;
|
|
268
|
+
border-radius: 1px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.progress::-webkit-progress-value {
|
|
272
|
+
border-radius: 1px;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.progress::-moz-progress-bar {
|
|
276
|
+
border-radius: 1px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.progress-gradient-success::-webkit-progress-value {
|
|
280
|
+
background: var(--color-neon-green);
|
|
281
|
+
}
|
|
282
|
+
|
|
139
283
|
.progress-gradient-warning::-webkit-progress-value {
|
|
140
|
-
background
|
|
141
|
-
to right,
|
|
142
|
-
var(--color-neon-yellow),
|
|
143
|
-
var(--color-yellow-400)
|
|
144
|
-
);
|
|
284
|
+
background: var(--color-neon-yellow);
|
|
145
285
|
}
|
|
146
286
|
|
|
147
287
|
.progress-gradient-error::-webkit-progress-value {
|
|
148
|
-
background
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
);
|
|
288
|
+
background: var(--color-neon-red);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.progress-gradient-success::-moz-progress-bar {
|
|
292
|
+
background: var(--color-neon-green);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.progress-gradient-warning::-moz-progress-bar {
|
|
296
|
+
background: var(--color-neon-yellow);
|
|
153
297
|
}
|
|
154
298
|
|
|
155
|
-
|
|
299
|
+
.progress-gradient-error::-moz-progress-bar {
|
|
300
|
+
background: var(--color-neon-red);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/* Readouts: every number a person reads off the panel */
|
|
304
|
+
.readout {
|
|
305
|
+
@apply font-display;
|
|
306
|
+
font-variant-numeric: tabular-nums;
|
|
307
|
+
letter-spacing: 0;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* Tooltip */
|
|
156
311
|
.tooltip:before {
|
|
157
|
-
@apply bg-space-800 border border-space-border text-gray-200 font-
|
|
312
|
+
@apply bg-space-800 border border-space-border text-gray-200 font-sans text-xs;
|
|
313
|
+
border-radius: var(--control-radius);
|
|
158
314
|
}
|
|
159
315
|
|
|
160
316
|
.tooltip-left:before {
|
|
@@ -162,38 +318,23 @@
|
|
|
162
318
|
}
|
|
163
319
|
|
|
164
320
|
/* -------------------------------------------------------------------------- */
|
|
165
|
-
/*
|
|
321
|
+
/* Layout */
|
|
166
322
|
/* -------------------------------------------------------------------------- */
|
|
167
323
|
|
|
168
|
-
|
|
169
|
-
:
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
324
|
+
.view-container {
|
|
325
|
+
display: flex;
|
|
326
|
+
flex-direction: column;
|
|
327
|
+
margin-left: auto;
|
|
328
|
+
margin-right: auto;
|
|
329
|
+
width: 100%;
|
|
330
|
+
padding: var(--view-padding);
|
|
331
|
+
gap: var(--view-gap);
|
|
332
|
+
min-height: calc(100vh - 56px);
|
|
333
|
+
max-width: 1400px;
|
|
334
|
+
scrollbar-gutter: stable;
|
|
180
335
|
}
|
|
181
336
|
|
|
182
|
-
/*
|
|
183
|
-
.view-container {
|
|
184
|
-
display: flex;
|
|
185
|
-
flex-direction: column;
|
|
186
|
-
margin-left: auto;
|
|
187
|
-
margin-right: auto;
|
|
188
|
-
width: 100%;
|
|
189
|
-
padding: var(--view-padding);
|
|
190
|
-
gap: var(--view-gap);
|
|
191
|
-
min-height: calc(100vh - 56px); /* Align with navbar height */
|
|
192
|
-
max-width: 1400px;
|
|
193
|
-
scrollbar-gutter: stable;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/* Specialized container for data-heavy pages (Logs) */
|
|
337
|
+
/* Data-heavy pages (Logs) */
|
|
197
338
|
.view-container-full {
|
|
198
339
|
@apply w-full animate-fade-in flex flex-col;
|
|
199
340
|
padding: var(--view-padding);
|
|
@@ -202,29 +343,27 @@
|
|
|
202
343
|
max-width: 100%;
|
|
203
344
|
}
|
|
204
345
|
|
|
205
|
-
/*
|
|
346
|
+
/* Form-heavy pages (Settings/Accounts) */
|
|
206
347
|
.view-container-centered {
|
|
207
348
|
@apply mx-auto w-full animate-fade-in flex flex-col;
|
|
208
349
|
padding: var(--view-padding);
|
|
209
350
|
gap: var(--view-gap);
|
|
210
351
|
min-height: calc(100vh - 56px);
|
|
211
|
-
max-width: 900px;
|
|
352
|
+
max-width: 900px;
|
|
212
353
|
}
|
|
213
354
|
|
|
214
|
-
/* Standard Section Header */
|
|
215
355
|
.view-header {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
gap: 1rem;
|
|
356
|
+
display: flex;
|
|
357
|
+
flex-direction: column;
|
|
358
|
+
justify-content: space-between;
|
|
359
|
+
gap: 1rem;
|
|
221
360
|
}
|
|
222
361
|
|
|
223
362
|
@media (min-width: 768px) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
363
|
+
.view-header {
|
|
364
|
+
flex-direction: row;
|
|
365
|
+
align-items: flex-end;
|
|
366
|
+
}
|
|
228
367
|
}
|
|
229
368
|
|
|
230
369
|
.view-header-title {
|
|
@@ -232,7 +371,8 @@
|
|
|
232
371
|
}
|
|
233
372
|
|
|
234
373
|
.view-header-title h2 {
|
|
235
|
-
@apply text-
|
|
374
|
+
@apply font-display text-[1.5rem] leading-tight font-bold text-white;
|
|
375
|
+
letter-spacing: -0.01em;
|
|
236
376
|
}
|
|
237
377
|
|
|
238
378
|
.view-header-title p {
|
|
@@ -243,59 +383,69 @@
|
|
|
243
383
|
@apply flex items-center gap-3;
|
|
244
384
|
}
|
|
245
385
|
|
|
246
|
-
/*
|
|
386
|
+
/* Panel */
|
|
247
387
|
.view-card {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
rgba(15, 15, 17, 0.75) 0%,
|
|
255
|
-
rgba(18, 18, 20, 0.70) 100%
|
|
256
|
-
);
|
|
257
|
-
-webkit-backdrop-filter: blur(12px);
|
|
258
|
-
backdrop-filter: blur(12px);
|
|
259
|
-
box-shadow:
|
|
260
|
-
0 0 0 1px rgba(255, 255, 255, 0.02) inset,
|
|
261
|
-
0 4px 24px rgba(0, 0, 0, 0.4);
|
|
262
|
-
transition: border-color 0.3s ease, box-shadow 0.3s ease;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
.view-card:hover {
|
|
266
|
-
border-color: rgba(255, 255, 255, 0.12);
|
|
267
|
-
box-shadow:
|
|
268
|
-
0 0 0 1px rgba(255, 255, 255, 0.04) inset,
|
|
269
|
-
0 8px 32px rgba(0, 0, 0, 0.5);
|
|
388
|
+
position: relative;
|
|
389
|
+
overflow: hidden;
|
|
390
|
+
border-radius: var(--card-radius);
|
|
391
|
+
padding: 1.5rem;
|
|
392
|
+
border: 1px solid var(--color-space-border);
|
|
393
|
+
background: var(--color-space-900);
|
|
270
394
|
}
|
|
271
395
|
|
|
272
396
|
.view-card-header {
|
|
273
|
-
@apply flex items-center justify-between mb-4 pb-4 border-b border-
|
|
397
|
+
@apply flex items-center justify-between mb-4 pb-4 border-b border-space-border;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* Stat tiles share the panel surface */
|
|
401
|
+
.stat {
|
|
402
|
+
border-color: var(--color-space-border);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.stat-title {
|
|
406
|
+
text-transform: none;
|
|
407
|
+
letter-spacing: 0;
|
|
274
408
|
}
|
|
275
409
|
|
|
276
|
-
/*
|
|
410
|
+
/* -------------------------------------------------------------------------- */
|
|
411
|
+
/* Tables */
|
|
412
|
+
/* -------------------------------------------------------------------------- */
|
|
413
|
+
|
|
277
414
|
.standard-table {
|
|
278
415
|
@apply table w-full border-separate border-spacing-0;
|
|
279
416
|
}
|
|
417
|
+
|
|
280
418
|
.standard-table thead {
|
|
281
|
-
@apply
|
|
419
|
+
@apply text-gray-500 font-sans text-xs border-b border-space-border;
|
|
420
|
+
background: transparent;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.standard-table thead th {
|
|
424
|
+
@apply font-medium normal-case;
|
|
425
|
+
letter-spacing: 0;
|
|
426
|
+
border-bottom: 1px solid var(--color-space-border);
|
|
282
427
|
}
|
|
428
|
+
|
|
283
429
|
.standard-table tbody tr {
|
|
284
|
-
@apply transition-
|
|
430
|
+
@apply transition-colors duration-150;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.standard-table tbody td {
|
|
434
|
+
border-bottom: 1px solid rgba(39, 41, 45, 0.7);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.standard-table tbody tr:last-child td {
|
|
438
|
+
border-bottom: 0;
|
|
285
439
|
}
|
|
286
440
|
|
|
287
441
|
.standard-table tbody tr:hover {
|
|
288
|
-
background:
|
|
289
|
-
90deg,
|
|
290
|
-
rgba(255, 255, 255, 0.03) 0%,
|
|
291
|
-
rgba(255, 255, 255, 0.05) 50%,
|
|
292
|
-
rgba(255, 255, 255, 0.03) 100%
|
|
293
|
-
);
|
|
294
|
-
border-color: rgba(255, 255, 255, 0.08);
|
|
295
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
442
|
+
background: rgba(28, 30, 33, 0.6);
|
|
296
443
|
}
|
|
297
444
|
|
|
298
|
-
/*
|
|
445
|
+
/* -------------------------------------------------------------------------- */
|
|
446
|
+
/* Range slider */
|
|
447
|
+
/* -------------------------------------------------------------------------- */
|
|
448
|
+
|
|
299
449
|
.custom-range {
|
|
300
450
|
-webkit-appearance: none;
|
|
301
451
|
appearance: none;
|
|
@@ -314,6 +464,8 @@
|
|
|
314
464
|
height: 14px;
|
|
315
465
|
border-radius: 50%;
|
|
316
466
|
background: var(--range-color, var(--color-neon-purple));
|
|
467
|
+
border: 2px solid var(--color-space-950);
|
|
468
|
+
box-shadow: 0 0 0 1px var(--range-color, var(--color-neon-purple));
|
|
317
469
|
cursor: pointer;
|
|
318
470
|
transition: transform 0.1s ease;
|
|
319
471
|
}
|
|
@@ -325,7 +477,7 @@
|
|
|
325
477
|
.custom-range::-moz-range-thumb {
|
|
326
478
|
width: 14px;
|
|
327
479
|
height: 14px;
|
|
328
|
-
border:
|
|
480
|
+
border: 2px solid var(--color-space-950);
|
|
329
481
|
border-radius: 50%;
|
|
330
482
|
background: var(--range-color, var(--color-neon-purple));
|
|
331
483
|
cursor: pointer;
|
|
@@ -336,7 +488,11 @@
|
|
|
336
488
|
transform: scale(1.15);
|
|
337
489
|
}
|
|
338
490
|
|
|
339
|
-
|
|
491
|
+
.custom-range:focus-visible {
|
|
492
|
+
outline: 2px solid var(--color-neon-purple);
|
|
493
|
+
outline-offset: 4px;
|
|
494
|
+
}
|
|
495
|
+
|
|
340
496
|
.custom-range-purple {
|
|
341
497
|
--range-color: var(--color-neon-purple);
|
|
342
498
|
}
|
|
@@ -354,29 +510,26 @@
|
|
|
354
510
|
}
|
|
355
511
|
|
|
356
512
|
/* -------------------------------------------------------------------------- */
|
|
357
|
-
/*
|
|
513
|
+
/* Controls */
|
|
358
514
|
/* -------------------------------------------------------------------------- */
|
|
359
515
|
|
|
360
|
-
/* Phase 1.2 additions ... */
|
|
361
|
-
|
|
362
|
-
/* Filter Controls */
|
|
363
516
|
.filter-control {
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
517
|
+
@apply flex items-center justify-center gap-2 px-3 py-1.5
|
|
518
|
+
text-xs font-sans font-medium text-gray-400
|
|
519
|
+
bg-space-800 border border-space-border
|
|
520
|
+
rounded-md hover:text-white hover:border-gray-600
|
|
521
|
+
transition-colors duration-150 whitespace-nowrap w-full sm:w-auto;
|
|
369
522
|
}
|
|
370
523
|
|
|
371
|
-
.filter-control
|
|
372
|
-
|
|
524
|
+
.filter-control-item {
|
|
525
|
+
@apply block w-full px-3 py-1.5 text-left text-xs font-sans hover:bg-white/5 transition-colors;
|
|
373
526
|
}
|
|
374
527
|
|
|
375
|
-
.
|
|
376
|
-
|
|
528
|
+
.btn {
|
|
529
|
+
@apply font-medium normal-case;
|
|
530
|
+
letter-spacing: 0;
|
|
377
531
|
}
|
|
378
532
|
|
|
379
|
-
/* Action Buttons */
|
|
380
533
|
.btn-action-ghost {
|
|
381
534
|
@apply btn btn-xs btn-ghost text-gray-400 hover:text-white transition-colors;
|
|
382
535
|
}
|
|
@@ -386,92 +539,109 @@
|
|
|
386
539
|
}
|
|
387
540
|
|
|
388
541
|
.btn-action-primary {
|
|
389
|
-
@apply btn
|
|
390
|
-
|
|
391
|
-
|
|
542
|
+
@apply btn border-none transition-colors;
|
|
543
|
+
background: var(--color-neon-purple);
|
|
544
|
+
color: var(--color-space-950);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.btn-action-primary:hover {
|
|
548
|
+
background: #7fdbe4;
|
|
392
549
|
}
|
|
393
550
|
|
|
394
551
|
.btn-action-success {
|
|
395
|
-
@apply btn btn-xs btn-ghost btn-square text-green
|
|
552
|
+
@apply btn btn-xs btn-ghost btn-square text-neon-green hover:bg-neon-green/15;
|
|
396
553
|
}
|
|
397
554
|
|
|
398
555
|
.btn-action-danger {
|
|
399
|
-
@apply btn btn-xs btn-ghost btn-square text-red
|
|
556
|
+
@apply btn btn-xs btn-ghost btn-square text-neon-red hover:bg-neon-red/15;
|
|
400
557
|
}
|
|
401
558
|
|
|
402
559
|
.btn-action-neutral {
|
|
403
560
|
@apply btn btn-xs btn-ghost btn-square text-gray-500 hover:bg-gray-500/20;
|
|
404
561
|
}
|
|
405
562
|
|
|
406
|
-
/* Status
|
|
563
|
+
/* Status pills: quiet sentence-case chips; colour carries the meaning */
|
|
407
564
|
.status-pill {
|
|
408
|
-
@apply px-2 py-
|
|
565
|
+
@apply inline-flex items-center gap-1 px-2 py-0.5 text-[11px] font-sans font-medium rounded-full border normal-case;
|
|
566
|
+
letter-spacing: 0;
|
|
409
567
|
}
|
|
410
568
|
|
|
411
569
|
.status-pill-purple {
|
|
412
|
-
@apply status-pill bg-neon-purple/10 text-neon-purple border-neon-purple/
|
|
570
|
+
@apply status-pill bg-neon-purple/10 text-neon-purple border-neon-purple/25;
|
|
413
571
|
}
|
|
414
572
|
|
|
415
573
|
.status-pill-ultra {
|
|
416
|
-
@apply status-pill bg-yellow
|
|
574
|
+
@apply status-pill bg-neon-yellow/10 text-neon-yellow border-neon-yellow/25;
|
|
417
575
|
}
|
|
418
576
|
|
|
419
577
|
.status-pill-pro {
|
|
420
|
-
@apply status-pill bg-
|
|
578
|
+
@apply status-pill bg-neon-cyan/10 text-neon-cyan border-neon-cyan/25;
|
|
421
579
|
}
|
|
422
580
|
|
|
423
581
|
.status-pill-free {
|
|
424
|
-
@apply status-pill bg-gray-500/10 text-gray-400 border-gray-500/
|
|
582
|
+
@apply status-pill bg-gray-500/10 text-gray-400 border-gray-500/25;
|
|
425
583
|
}
|
|
426
584
|
|
|
427
585
|
.status-pill-success {
|
|
428
|
-
@apply status-pill bg-neon-green/10 text-neon-green border-neon-green/
|
|
586
|
+
@apply status-pill bg-neon-green/10 text-neon-green border-neon-green/25;
|
|
429
587
|
}
|
|
430
588
|
|
|
431
589
|
.status-pill-warning {
|
|
432
|
-
@apply status-pill bg-yellow
|
|
590
|
+
@apply status-pill bg-neon-yellow/10 text-neon-yellow border-neon-yellow/25;
|
|
433
591
|
}
|
|
434
592
|
|
|
435
593
|
.status-pill-error {
|
|
436
|
-
@apply status-pill bg-red
|
|
594
|
+
@apply status-pill bg-neon-red/10 text-neon-red border-neon-red/25;
|
|
437
595
|
}
|
|
438
596
|
|
|
439
|
-
/*
|
|
597
|
+
/* Inputs */
|
|
440
598
|
.input-search {
|
|
441
|
-
@apply w-full bg-space-900
|
|
442
|
-
rounded-
|
|
443
|
-
focus:outline-none focus:
|
|
444
|
-
hover:border-
|
|
445
|
-
transition-
|
|
599
|
+
@apply w-full bg-space-900 border border-space-border text-gray-200
|
|
600
|
+
rounded-md pl-10 pr-4 py-2
|
|
601
|
+
focus:outline-none focus:border-neon-purple/60
|
|
602
|
+
hover:border-gray-600
|
|
603
|
+
transition-colors placeholder-gray-600;
|
|
446
604
|
}
|
|
447
605
|
|
|
448
606
|
.input-search-sm {
|
|
449
607
|
@apply input-search h-8 text-xs font-normal;
|
|
450
608
|
}
|
|
451
609
|
|
|
610
|
+
.input,
|
|
611
|
+
.select,
|
|
612
|
+
.textarea {
|
|
613
|
+
border-radius: var(--control-radius);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/* Modals */
|
|
617
|
+
.modal-box {
|
|
618
|
+
border-radius: 0.75rem;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.modal-backdrop {
|
|
622
|
+
background: rgba(0, 0, 0, 0.7);
|
|
623
|
+
}
|
|
624
|
+
|
|
452
625
|
/* -------------------------------------------------------------------------- */
|
|
453
|
-
/* Skeleton
|
|
626
|
+
/* Skeleton loading */
|
|
454
627
|
/* -------------------------------------------------------------------------- */
|
|
455
628
|
|
|
456
|
-
/* Skeleton animation */
|
|
457
629
|
@keyframes skeleton-pulse {
|
|
458
|
-
0%,
|
|
630
|
+
0%,
|
|
631
|
+
100% {
|
|
459
632
|
opacity: 1;
|
|
460
633
|
}
|
|
461
634
|
50% {
|
|
462
|
-
opacity: 0.
|
|
635
|
+
opacity: 0.5;
|
|
463
636
|
}
|
|
464
637
|
}
|
|
465
638
|
|
|
466
|
-
/* Base skeleton element */
|
|
467
639
|
.skeleton {
|
|
468
|
-
|
|
469
|
-
background-size: 200% 100%;
|
|
640
|
+
background: var(--color-space-800);
|
|
470
641
|
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
471
642
|
border-radius: 0.375rem;
|
|
472
643
|
}
|
|
473
644
|
|
|
474
|
-
/* Skeleton variants */
|
|
475
645
|
.skeleton-text {
|
|
476
646
|
@apply skeleton h-4 w-full;
|
|
477
647
|
}
|
|
@@ -506,11 +676,11 @@
|
|
|
506
676
|
background-color: oklch(var(--su)) !important;
|
|
507
677
|
}
|
|
508
678
|
|
|
509
|
-
/* Desktop
|
|
679
|
+
/* Desktop sidebar collapsed state */
|
|
510
680
|
@media (min-width: 1024px) {
|
|
511
681
|
body .sidebar-collapsed {
|
|
512
682
|
width: 0;
|
|
513
683
|
padding: 0;
|
|
514
684
|
border: none;
|
|
515
685
|
}
|
|
516
|
-
}
|
|
686
|
+
}
|