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.
@@ -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
- /* === Background Layers === */
7
- --color-space-950: #09090b;
8
- --color-space-900: #0f0f11;
9
- --color-space-850: #121214;
10
- --color-space-800: #18181b;
11
- --color-space-border: #27272a;
12
-
13
- /* === Neon Accents (Full Saturation) === */
14
- --color-neon-purple: #a855f7;
15
- --color-neon-green: #22c55e;
16
- --color-neon-cyan: #06b6d4;
17
- --color-neon-yellow: #eab308;
18
- --color-neon-red: #ef4444;
19
-
20
- /* === Soft Neon (Reduced Saturation for Fills) === */
21
- --color-neon-purple-soft: #9333ea;
22
- --color-neon-green-soft: #16a34a;
23
- --color-neon-cyan-soft: #0891b2;
24
-
25
- /* === Text Hierarchy (WCAG AA Compliant) === */
26
- --color-text-primary: #ffffff; /* Emphasis: Titles, Key Numbers */
27
- --color-text-secondary: #d4d4d8; /* Content: Body Text (zinc-300) */
28
- --color-text-tertiary: #a1a1aa; /* Metadata: Timestamps, Labels (zinc-400) */
29
- --color-text-quaternary: #71717a; /* Subtle: Decorative (zinc-500) */
30
-
31
- /* === Legacy Aliases (Backward Compatibility) === */
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
- /* Gradient Accents */
38
- --color-green-400: #4ade80;
39
- --color-yellow-400: #facc15;
40
- --color-red-400: #f87171;
41
-
42
- /* Chart Colors */
43
- --color-chart-1: #a855f7;
44
- --color-chart-2: #c084fc;
45
- --color-chart-3: #e879f9;
46
- --color-chart-4: #d946ef;
47
- --color-chart-5: #22c55e;
48
- --color-chart-6: #4ade80;
49
- --color-chart-7: #86efac;
50
- --color-chart-8: #10b981;
51
- --color-chart-9: #06b6d4;
52
- --color-chart-10: #f59e0b;
53
- --color-chart-11: #ef4444;
54
- --color-chart-12: #ec4899;
55
- --color-chart-13: #8b5cf6;
56
- --color-chart-14: #14b8a6;
57
- --color-chart-15: #f97316;
58
- --color-chart-16: #6366f1;
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
- /* Custom Scrollbar */
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: 8px;
72
- height: 8px;
152
+ width: 10px;
153
+ height: 10px;
73
154
  }
74
155
 
75
156
  ::-webkit-scrollbar-track {
76
- background: rgba(9, 9, 11, 0.3);
77
- border-radius: 4px;
157
+ background: transparent;
78
158
  }
79
159
 
80
160
  ::-webkit-scrollbar-thumb {
81
- background: linear-gradient(180deg, #27272a 0%, #18181b 100%);
82
- border-radius: 4px;
83
- border: 1px solid rgba(255, 255, 255, 0.05);
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: linear-gradient(180deg, #3f3f46 0%, #27272a 100%);
89
- border-color: rgba(168, 85, 247, 0.3);
167
+ background: #4d4d4a;
90
168
  }
91
169
 
92
- /* Animations */
170
+ /* -------------------------------------------------------------------------- */
171
+ /* Motion */
172
+ /* -------------------------------------------------------------------------- */
173
+
93
174
  .fade-enter-active,
94
175
  .fade-leave-active {
95
- transition: opacity 0.2s ease;
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.4s ease-out forwards;
194
+ animation: fadeIn 0.2s ease-out forwards;
116
195
  }
117
196
 
118
- .nav-item.active {
119
- background: linear-gradient(
120
- 90deg,
121
- theme("colors.neon.purple / 15%") 0%,
122
- transparent 100%
123
- );
124
- @apply border-l-4 border-neon-purple text-white;
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 border-l-4 border-transparent transition-all duration-200;
225
+ @apply relative mx-3 rounded-md transition-colors duration-150;
129
226
  }
130
227
 
131
- .progress-gradient-success::-webkit-progress-value {
132
- background-image: linear-gradient(
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
- var(--color-neon-green),
135
- var(--color-green-400)
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-image: linear-gradient(
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-image: linear-gradient(
149
- to right,
150
- var(--color-neon-red),
151
- var(--color-red-400)
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
- /* Tooltip Customization */
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-mono text-xs;
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
- /* Refactored Global Utilities */
321
+ /* Layout */
166
322
  /* -------------------------------------------------------------------------- */
167
323
 
168
- /* Standard Layout Constants */
169
- :root {
170
- --view-padding: 2rem; /* 32px - Standard Padding */
171
- --view-gap: 2rem; /* 32px - Standard component gap */
172
- --card-radius: 0.75rem; /* 12px */
173
- }
174
-
175
- @media (max-width: 768px) {
176
- :root {
177
- --view-padding: 1rem;
178
- --view-gap: 1.25rem;
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
- /* Base View Container */
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
- /* Centered container for form-heavy pages (Settings/Accounts) */
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; /* Comfortable reading width for forms */
352
+ max-width: 900px;
212
353
  }
213
354
 
214
- /* Standard Section Header */
215
355
  .view-header {
216
- display: flex;
217
- flex-direction: column;
218
- justify-content: space-between;
219
- margin-bottom: 0.5rem;
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
- .view-header {
225
- flex-direction: row;
226
- align-items: flex-end;
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-2xl font-bold text-white tracking-tight;
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
- /* Standard Card Panel */
386
+ /* Panel */
247
387
  .view-card {
248
- position: relative;
249
- overflow: hidden;
250
- border-radius: var(--card-radius);
251
- padding: 1.5rem;
252
- border: 1px solid rgba(255, 255, 255, 0.08);
253
- background: linear-gradient(135deg,
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-[rgba(39,39,42,0.3)];
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
- /* Component Unification */
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 bg-space-900/50 text-gray-500 font-mono text-xs uppercase border-b border-space-border;
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-all duration-200 border-b border-[rgba(39,39,42,0.3)] last:border-0;
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: linear-gradient(
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
- /* Custom Range Slider - Simplified */
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: none;
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
- /* Color Variants */
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
- /* Refactored UI Components (Phase 1.2) */
513
+ /* Controls */
358
514
  /* -------------------------------------------------------------------------- */
359
515
 
360
- /* Phase 1.2 additions ... */
361
-
362
- /* Filter Controls */
363
516
  .filter-control {
364
- @apply flex items-center justify-center gap-2 px-3 py-1.5 lg:px-4 lg:py-2
365
- text-[10px] lg:text-xs font-mono font-medium text-gray-400
366
- bg-space-800 lg:bg-transparent border border-space-border/50 lg:border-transparent
367
- rounded lg:rounded-md hover:text-white lg:hover:bg-space-800
368
- transition-all duration-200 whitespace-nowrap w-full sm:w-auto;
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:hover {
372
- @apply border-neon-cyan/50 lg:border-neon-cyan/30 lg:shadow-lg lg:shadow-neon-cyan/10;
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
- .filter-control-item {
376
- @apply block w-full px-3 py-1.5 text-left text-[10px] font-mono hover:bg-white/5 transition-colors;
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 bg-gradient-to-r from-neon-purple to-indigo-600
390
- border-none text-white shadow-lg shadow-neon-purple/20
391
- hover:shadow-neon-purple/40 transition-all;
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-500 hover:bg-green-500/20;
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-400 hover:bg-red-500/20;
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 Pills/Badges */
563
+ /* Status pills: quiet sentence-case chips; colour carries the meaning */
407
564
  .status-pill {
408
- @apply px-2 py-1 text-[10px] font-mono font-bold uppercase rounded border;
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/30;
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-500/10 text-yellow-400 border-yellow-500/30;
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-blue-500/10 text-blue-400 border-blue-500/30;
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/30;
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/30;
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-500/10 text-yellow-400 border-yellow-500/30;
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-500/10 text-red-400 border-red-500/30;
594
+ @apply status-pill bg-neon-red/10 text-neon-red border-neon-red/25;
437
595
  }
438
596
 
439
- /* Input Components */
597
+ /* Inputs */
440
598
  .input-search {
441
- @apply w-full bg-space-900/50 border border-[rgba(39,39,42,0.5)] text-gray-300
442
- rounded-lg pl-10 pr-4 py-2
443
- focus:outline-none focus:bg-space-800 focus:border-neon-purple/50
444
- hover:border-space-border hover:bg-space-800/80
445
- transition-all placeholder-gray-600/80;
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 Loading (Phase 4.1) */
626
+ /* Skeleton loading */
454
627
  /* -------------------------------------------------------------------------- */
455
628
 
456
- /* Skeleton animation */
457
629
  @keyframes skeleton-pulse {
458
- 0%, 100% {
630
+ 0%,
631
+ 100% {
459
632
  opacity: 1;
460
633
  }
461
634
  50% {
462
- opacity: 0.4;
635
+ opacity: 0.5;
463
636
  }
464
637
  }
465
638
 
466
- /* Base skeleton element */
467
639
  .skeleton {
468
- @apply bg-gradient-to-r from-space-900/60 via-space-800/40 to-space-900/60;
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 Sidebar Collapsed State */
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
+ }