sensivity 2.5.42 → 2.5.43

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.
@@ -1,36 +1,28 @@
1
1
  :root {
2
- --bg: #000;
3
- --bg2: #050605;
4
- --bg3: #0b0d0b;
5
- --bg4: #111411;
6
- --bg5: #171c18;
7
- --sidebar: #080a08;
8
- --sidebar2: #040504;
9
- --border: #1b251f;
10
- --border2: #223528;
11
- --accent: #20f568;
12
- --accent2: #0fb84c;
13
- --accent-dim: rgba(49, 255, 122, .2);
14
- --gold: var(--accent);
15
- --gold-dim: rgba(49, 255, 122, .16);
16
- --text: #f2f2f6;
17
- --text2: #c3cdc6;
18
- --text3: #7f8b83;
19
- --danger: #f15d62;
20
- --green: #52e37c;
21
- --panel-w: min(1120px, 92vw);
22
- --panel-h: min(720px, 78dvh);
23
- --radius: 6px;
2
+ --bg: #050508;
3
+ --bg2: #0a0a12;
4
+ --bg3: #11111d;
5
+ --bg4: #1a1a2e;
6
+ --bg5: #22223a;
7
+ --border: #1c1c30;
8
+ --gold: #f0b90b;
9
+ --gold2: #d4a00c;
10
+ --gold-glow: #f0b90b44;
11
+ --text: #e8eaed;
12
+ --text2: #7a7d95;
13
+ --text3: #4a4d65;
14
+ --danger: #e74c3c;
15
+ --green: #2ecc71;
16
+ --radius: 10px;
17
+ --topbar-h: 44px;
24
18
  --font: 'Segoe UI', system-ui, -apple-system, sans-serif;
25
19
  }
26
20
 
27
21
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
28
22
 
29
- html, body { min-height: 100%; }
30
-
31
23
  body {
32
- position: relative;
33
24
  font-family: var(--font);
25
+ background: var(--bg);
34
26
  color: var(--text);
35
27
  height: 100dvh;
36
28
  overflow: hidden;
@@ -39,1052 +31,324 @@ body {
39
31
  -webkit-tap-highlight-color: transparent;
40
32
  display: flex;
41
33
  flex-direction: column;
42
- align-items: center;
43
- justify-content: center;
44
- padding: 18px;
45
- background:
46
- radial-gradient(circle at 50% 44%, rgba(32, 245, 104, .08), transparent 32%),
47
- linear-gradient(180deg, #000, #020302 72%);
48
- }
49
-
50
- body::before,
51
- body::after {
52
- content: '';
53
- position: fixed;
54
- inset: 0;
55
- pointer-events: none;
56
- z-index: -1;
57
- }
58
- body::before {
59
- background:
60
- radial-gradient(circle at 12% 30%, rgba(32, 245, 104, .08), transparent 22%),
61
- radial-gradient(circle at 88% 66%, rgba(32, 245, 104, .07), transparent 24%);
62
- }
63
- body::after {
64
- z-index: 0;
65
- background-image:
66
- radial-gradient(circle, rgba(49, 255, 122, .72) 0 1px, transparent 2px),
67
- radial-gradient(circle, rgba(49, 255, 122, .35) 0 1px, transparent 2px),
68
- radial-gradient(circle, rgba(255,255,255,.18) 0 1px, transparent 2px);
69
- background-size: 78px 78px, 126px 126px, 210px 210px;
70
- background-position: 0 0, 32px 42px, 80px 120px;
71
- opacity: .72;
72
- animation: sensivityParticles 13s linear infinite;
73
- mask-image: radial-gradient(ellipse at center, #000 0 58%, transparent 82%);
74
- }
75
-
76
- #bg-brand {
77
- position: fixed;
78
- inset: 0;
79
- z-index: 0;
80
- pointer-events: none;
81
- overflow: hidden;
82
- }
83
-
84
- .brand-mark {
85
- position: absolute;
86
- color: rgba(32, 245, 104, .18);
87
- font-size: clamp(22px, 3vw, 46px);
88
- line-height: .9;
89
- font-weight: 950;
90
- text-shadow: 0 0 26px rgba(32, 245, 104, .22);
91
34
  }
92
- .brand-mark.m1 { left: 5vw; top: 8vh; transform: rotate(-6deg); }
93
- .brand-mark.m2 { right: 5vw; top: 14vh; text-align: right; transform: rotate(5deg); }
94
- .brand-mark.m3 { left: 7vw; bottom: 9vh; transform: rotate(4deg); }
95
- .brand-mark.m4 { right: 7vw; bottom: 12vh; text-align: right; transform: rotate(-5deg); }
96
35
 
97
- ::-webkit-scrollbar { width: 4px; height: 4px; }
36
+ ::-webkit-scrollbar { width: 3px; }
98
37
  ::-webkit-scrollbar-track { background: transparent; }
99
- ::-webkit-scrollbar-thumb { background: #2b3c30; border-radius: 2px; }
38
+ ::-webkit-scrollbar-thumb { background: var(--bg4); border-radius: 2px; }
100
39
 
101
- @keyframes sensivityParticles {
102
- from { background-position: 0 0, 32px 42px, 80px 120px; }
103
- to { background-position: 96px -240px, -72px -180px, 180px -120px; }
104
- }
105
-
106
- #app {
107
- position: relative;
108
- z-index: 1;
109
- width: var(--panel-w);
110
- height: var(--panel-h);
111
- min-height: 520px;
112
- display: flex;
113
- overflow: hidden;
114
- background: rgba(2, 3, 2, .98);
115
- border: 1px solid rgba(32, 245, 104, .28);
116
- border-radius: var(--radius);
117
- box-shadow: 0 28px 90px rgba(0, 0, 0, .62);
118
- }
40
+ /* ===== APP ===== */
41
+ #app { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
119
42
 
43
+ /* ===== DESKTOP SIDEBAR ===== */
120
44
  #sidebar {
121
- width: 210px;
122
- flex: 0 0 210px;
123
- background: linear-gradient(180deg, var(--sidebar), var(--sidebar2));
124
- border-right: 1px solid #242c27;
125
- display: flex;
126
- flex-direction: column;
127
- overflow: hidden;
128
- }
129
-
130
- .brand {
131
- height: 70px;
132
- display: flex;
133
- align-items: center;
134
- gap: 12px;
135
- padding: 0 22px;
136
- color: #f9f9ff;
137
- font-size: 20px;
138
- font-weight: 900;
139
- letter-spacing: 0;
140
- }
141
- .brand img {
142
- width: 34px;
143
- height: 34px;
144
- object-fit: contain;
145
- filter: drop-shadow(0 0 12px rgba(49, 255, 122, .28));
146
- }
147
- .brand span {
148
- min-width: 0;
149
- overflow: hidden;
150
- text-overflow: ellipsis;
45
+ width: 56px; background: var(--bg2); border-right: 1px solid var(--border);
46
+ display: flex; flex-direction: column; align-items: center;
47
+ padding: 12px 0; flex-shrink: 0; z-index: 10; gap: 2px;
151
48
  }
152
49
 
153
- .nav-scroll {
154
- flex: 1;
155
- overflow-y: auto;
156
- padding: 8px 10px 18px;
50
+ #sidebar .tab-btn {
51
+ width: 38px; height: 38px; border: none; background: transparent;
52
+ color: var(--text3); border-radius: 10px; cursor: pointer;
53
+ display: flex; align-items: center; justify-content: center;
54
+ transition: all 0.2s; position: relative;
157
55
  }
158
56
 
159
- .nav-group { margin-bottom: 18px; }
160
- .nav-heading {
161
- padding: 0 4px 8px;
162
- color: #55596d;
163
- font-size: 12px;
164
- line-height: 1;
165
- font-weight: 900;
166
- letter-spacing: 0;
57
+ #sidebar .tab-btn svg {
58
+ width: 18px; height: 18px; stroke: currentColor;
59
+ fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
167
60
  }
168
61
 
169
- .tab-btn {
170
- width: 100%;
171
- height: 40px;
172
- border: 0;
173
- border-radius: 4px;
174
- background: transparent;
175
- color: #6f7287;
176
- cursor: pointer;
177
- display: flex;
178
- align-items: center;
179
- gap: 14px;
180
- padding: 0 12px;
181
- position: relative;
182
- font-family: var(--font);
183
- font-size: 13px;
184
- font-weight: 800;
185
- transition: background .15s ease, color .15s ease;
62
+ #sidebar .tab-btn:hover { color: var(--text); background: var(--bg3); }
63
+ #sidebar .tab-btn.active {
64
+ color: var(--gold); background: linear-gradient(135deg, #f0b90b22, transparent);
65
+ box-shadow: 0 0 14px var(--gold-glow);
186
66
  }
187
-
188
- .tab-btn svg {
189
- width: 18px;
190
- height: 18px;
191
- stroke: currentColor;
192
- fill: none;
193
- stroke-width: 1.9;
194
- stroke-linecap: round;
195
- stroke-linejoin: round;
67
+ #sidebar .tab-btn.active::before {
68
+ content: ''; position: absolute; left: 0; top: 8px; bottom: 8px;
69
+ width: 3px; background: var(--gold); border-radius: 0 3px 3px 0;
196
70
  }
197
71
 
198
- .tab-btn:hover { color: #c9c6d7; background: rgba(255,255,255,.025); }
199
- .tab-btn.active {
200
- color: #fff;
201
- background: rgba(255,255,255,.045);
202
- }
203
- .tab-btn.active::after {
204
- content: '';
205
- position: absolute;
206
- top: 8px;
207
- bottom: 8px;
208
- right: 0;
209
- width: 4px;
210
- border-radius: 3px 0 0 3px;
211
- background: var(--accent);
212
- box-shadow: 0 0 16px rgba(49, 255, 122, .72);
213
- }
214
-
215
- #content {
216
- min-width: 0;
217
- flex: 1;
218
- display: flex;
219
- flex-direction: column;
220
- overflow: hidden;
221
- background: rgba(3, 4, 3, .98);
222
- }
72
+ /* ===== CONTENT ===== */
73
+ #content { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
223
74
 
75
+ /* ===== TOPBAR ===== */
224
76
  #topbar {
225
- height: 70px;
226
- flex: 0 0 70px;
227
- display: flex;
228
- align-items: center;
229
- gap: 18px;
230
- padding: 0 22px;
231
- border-bottom: 1px solid #242b26;
232
- background: #0d100e;
233
- }
234
-
235
- .top-title {
236
- min-width: 164px;
237
- display: flex;
238
- align-items: center;
239
- gap: 12px;
77
+ height: var(--topbar-h); background: var(--bg2); border-bottom: 1px solid var(--border);
78
+ display: flex; align-items: center; padding: 0 16px; flex-shrink: 0; gap: 6px; overflow: hidden;
240
79
  }
241
- .tb-icon {
242
- color: #87918a;
243
- display: inline-flex;
244
- }
245
- .tb-icon svg {
246
- width: 18px;
247
- height: 18px;
248
- stroke: currentColor;
249
- fill: none;
250
- stroke-width: 1.9;
251
- }
252
- .top-primary {
253
- display: block;
254
- font-size: 19px;
255
- font-weight: 800;
256
- color: #a8b2ab;
257
- }
258
- .top-secondary {
259
- display: block;
260
- margin-top: 1px;
261
- color: #31f474;
262
- font-size: 11px;
263
- font-weight: 800;
264
- text-transform: uppercase;
265
- letter-spacing: 0;
266
- }
267
-
268
- .sub-tabs {
269
- flex: 1;
270
- min-width: 0;
271
- display: flex;
272
- align-items: center;
273
- gap: 6px;
274
- overflow-x: auto;
275
- padding: 6px 0;
276
- }
277
- .sub-tab {
278
- min-width: max-content;
279
- border: 1px solid transparent;
280
- border-radius: 4px;
281
- background: transparent;
282
- color: #89948c;
283
- padding: 7px 10px;
284
- cursor: pointer;
285
- font-family: var(--font);
286
- font-size: 12px;
287
- font-weight: 800;
288
- }
289
- .sub-tab.active {
290
- color: #f7fff9;
291
- border-color: rgba(49, 255, 122, .34);
292
- background: rgba(49, 255, 122, .08);
293
- }
294
- .profile-dot {
295
- width: 36px;
296
- height: 36px;
297
- flex: 0 0 36px;
298
- border-radius: 50%;
299
- display: grid;
300
- place-items: center;
301
- background: #050705;
302
- border: 1px solid rgba(49, 255, 122, .28);
303
- box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 18px rgba(49, 255, 122, .12);
304
- }
305
- .profile-dot img {
306
- width: 23px;
307
- height: 23px;
308
- object-fit: contain;
309
- }
310
-
311
- #workspace {
312
- flex: 1;
313
- min-height: 0;
314
- display: flex;
315
- overflow: hidden;
80
+ #topbar .tb-icon svg { width: 16px; height: 16px; stroke: var(--gold); fill: none; stroke-width: 1.8; flex-shrink: 0; }
81
+ #topbar .title { font-size: 13px; font-weight: 700; color: var(--text); white-space: nowrap; }
82
+ #topbar .sep { color: var(--text3); margin: 0 2px; }
83
+ #topbar .sub { color: var(--gold); font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
84
+ #topbar select {
85
+ margin-left: auto; background: var(--bg3); border: 1px solid var(--border);
86
+ color: var(--text2); padding: 4px 8px; border-radius: 6px; font-size: 11px;
87
+ font-family: var(--font); cursor: pointer; outline: none; max-width: 110px; flex-shrink: 0;
316
88
  }
89
+ #topbar select:focus { border-color: var(--gold); color: var(--text); }
317
90
 
91
+ /* ===== PAGES ===== */
318
92
  #pages {
319
- flex: 1 1 auto;
320
- min-width: 0;
321
- overflow-y: auto;
322
- overflow-x: hidden;
323
- padding: 20px;
324
- display: grid;
325
- grid-template-columns: repeat(2, minmax(250px, 1fr));
326
- grid-auto-rows: max-content;
327
- gap: 20px;
328
- align-content: start;
329
- }
330
-
331
- #esp-preview-shell {
332
- display: none;
333
- flex: 0 0 372px;
334
- min-width: 0;
335
- padding: 20px 20px 20px 0;
336
- overflow: hidden;
337
- }
338
-
339
- #workspace.has-preview #pages {
340
- flex-basis: calc(100% - 372px);
341
- grid-template-columns: 1fr;
342
- }
343
-
344
- #workspace.has-preview #esp-preview-shell {
345
- display: block;
93
+ flex: 1; overflow-y: auto; overflow-x: hidden; padding: 12px;
94
+ display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
95
+ gap: 10px; align-content: start;
346
96
  }
347
97
 
98
+ /* ===== CARD ===== */
348
99
  .child {
349
- min-width: 0;
350
- background: rgba(10, 11, 10, .94);
351
- border: 1px solid rgba(43, 55, 47, .78);
352
- border-top-color: rgba(49, 255, 122, .72);
353
- border-radius: 8px;
354
- padding: 18px 18px 16px;
355
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .018);
100
+ background: var(--bg2); border: 1px solid var(--border);
101
+ border-radius: var(--radius); padding: 14px;
102
+ transition: border-color 0.2s, box-shadow 0.2s;
356
103
  }
357
- .child:hover { border-color: rgba(68, 93, 76, .9); border-top-color: rgba(49, 255, 122, .95); }
104
+ .child:hover { border-color: var(--bg4); }
358
105
  .child h3 {
359
- font-size: 12px;
360
- color: #95a39a;
361
- margin-bottom: 16px;
362
- font-weight: 900;
363
- letter-spacing: 0;
364
- }
365
- .split-child {
366
- grid-column: 1 / -1;
367
- }
368
- .split-controls {
369
- display: grid;
370
- grid-template-columns: minmax(270px, 420px) minmax(300px, 420px);
371
- justify-content: space-between;
372
- align-items: start;
373
- gap: clamp(28px, 8vw, 110px);
374
- }
375
- .split-right {
376
- padding-left: 24px;
377
- border-left: 1px solid rgba(49, 255, 122, .12);
378
- }
379
- .empty-state {
380
- grid-column: 1 / -1;
381
- min-height: 220px;
382
- display: grid;
383
- place-items: center;
384
- color: var(--text3);
106
+ font-size: 9px; text-transform: uppercase; color: var(--gold);
107
+ margin-bottom: 12px; letter-spacing: 2px; font-weight: 700;
108
+ display: flex; align-items: center; gap: 8px;
385
109
  }
110
+ .child h3::after { content: ''; flex: 1; height: 1px; background: var(--border); }
386
111
 
112
+ /* ===== CONTROL ===== */
387
113
  .ctrl {
388
- min-height: 38px;
389
- display: flex;
390
- align-items: center;
391
- justify-content: space-between;
392
- gap: 16px;
393
- margin-bottom: 10px;
394
- }
395
- .ctrl:last-child { margin-bottom: 0; }
396
- .ctrl > label:not(.tgl) {
397
- min-width: 0;
398
- color: #aeb8b0;
399
- font-size: 13px;
400
- line-height: 1.25;
401
- font-weight: 800;
402
- overflow: hidden;
403
- text-overflow: ellipsis;
404
- white-space: nowrap;
114
+ margin-bottom: 8px; display: flex; align-items: center;
115
+ justify-content: space-between; gap: 10px; min-height: 32px;
405
116
  }
406
- .ctrl:hover > label:not(.tgl) { color: #eef6f0; }
117
+ .ctrl label { font-size: 12px; color: var(--text2); flex: 1; transition: color 0.15s; }
118
+ .ctrl:hover label { color: var(--text); }
407
119
 
120
+ /* ===== PREMIUM TOGGLE ===== */
408
121
  .tgl {
409
- width: 34px;
410
- height: 20px;
411
- flex: 0 0 34px;
412
- position: relative;
413
- display: inline-flex;
414
- align-items: center;
122
+ position: relative; width: 44px; height: 24px; flex-shrink: 0;
415
123
  }
416
- .tgl input { opacity: 0; width: 0; height: 0; position: absolute; }
124
+ .tgl input { opacity: 0; width: 0; height: 0; }
417
125
  .tgl .track {
418
- position: absolute;
419
- inset: 0;
420
- cursor: pointer;
421
- border-radius: 999px;
422
- background: #171a17;
423
- border: 1px solid #2a322d;
424
- transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
126
+ position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;
127
+ background: var(--bg4); border-radius: 12px; transition: all 0.3s ease;
128
+ border: 1px solid var(--border); overflow: hidden;
425
129
  }
426
- .tgl .knob {
427
- position: absolute;
428
- left: 3px;
429
- top: 50%;
430
- width: 12px;
431
- height: 12px;
432
- border-radius: 50%;
433
- background: #69736b;
434
- transform: translateY(-50%);
435
- transition: transform .18s ease, background .18s ease;
130
+ .tgl .track::before {
131
+ content: ''; position: absolute; inset: 0;
132
+ background: linear-gradient(135deg, var(--gold), var(--gold2));
133
+ opacity: 0; transition: opacity 0.3s;
436
134
  }
437
- .tgl input:checked + .track {
438
- background: #102318;
439
- border-color: rgba(49, 255, 122, .56);
440
- box-shadow: 0 0 12px rgba(49, 255, 122, .26);
135
+ .tgl .knob {
136
+ position: absolute; height: 18px; width: 18px; left: 2px; bottom: 2px;
137
+ background: var(--text3); border-radius: 50%; transition: all 0.3s cubic-bezier(.4,0,.2,1);
138
+ z-index: 1; box-shadow: 0 1px 3px rgba(0,0,0,.3);
441
139
  }
442
- .tgl input:checked + .track .knob { transform: translate(14px, -50%); background: var(--accent); }
140
+ .tgl input:checked + .track { border-color: var(--gold); box-shadow: 0 0 10px var(--gold-glow); }
141
+ .tgl input:checked + .track::before { opacity: 1; }
142
+ .tgl input:checked + .track .knob,
143
+ .tgl input:checked ~ .knob { transform: translateX(22px); background: #1a1a0a; }
144
+ .tgl input:disabled + .track { opacity: 0.4; cursor: not-allowed; }
443
145
 
444
- .range-ctrl { align-items: flex-start; flex-direction: column; gap: 8px; }
146
+ /* ===== PREMIUM SLIDER ===== */
445
147
  .rng {
446
- width: 100%;
447
- display: grid;
448
- grid-template-columns: 54px 1fr;
449
- align-items: center;
450
- gap: 14px;
451
- padding: 2px 0 4px;
452
- }
453
- .rng-val {
454
- color: #d3ded6;
455
- font-size: 12px;
456
- font-weight: 900;
457
- text-align: right;
458
- font-variant-numeric: tabular-nums;
148
+ display: flex; align-items: center; gap: 8px; flex-shrink: 0;
459
149
  }
460
150
  .rng input[type=range] {
461
- -webkit-appearance: none;
462
- width: 100%;
463
- height: 22px;
464
- background: transparent;
465
- border-radius: 999px;
466
- outline: none;
467
- cursor: pointer;
468
- --range-percent: 0%;
469
- }
470
- .rng input[type=range]::-webkit-slider-runnable-track {
471
- height: 8px;
472
- border-radius: 999px;
473
- border: 1px solid rgba(32, 245, 104, .2);
474
- background:
475
- linear-gradient(90deg, rgba(32, 245, 104, .78) 0 var(--range-percent), #1c221e var(--range-percent) 100%);
476
- box-shadow: inset 0 0 0 1px rgba(0,0,0,.35);
151
+ -webkit-appearance: none; width: 90px; height: 6px;
152
+ background: var(--bg4); border-radius: 3px; outline: none;
477
153
  }
478
154
  .rng input[type=range]::-webkit-slider-thumb {
479
- -webkit-appearance: none;
480
- width: 18px;
481
- height: 18px;
482
- margin-top: -6px;
483
- border-radius: 50%;
484
- background: #0f1511;
485
- border: 3px solid #5d8269;
486
- cursor: pointer;
487
- box-shadow: 0 0 0 3px rgba(32, 245, 104, .1), 0 0 18px rgba(32, 245, 104, .18);
488
- }
489
- .rng input[type=range]::-moz-range-track {
490
- height: 8px;
491
- border-radius: 999px;
492
- border: 1px solid rgba(32, 245, 104, .2);
493
- background: #1c221e;
494
- }
495
- .rng input[type=range]::-moz-range-progress {
496
- height: 8px;
497
- border-radius: 999px;
498
- background: rgba(32, 245, 104, .78);
155
+ -webkit-appearance: none; width: 18px; height: 18px;
156
+ background: var(--gold); border-radius: 50%; cursor: pointer;
157
+ box-shadow: 0 0 10px var(--gold-glow); transition: transform 0.15s;
158
+ }
159
+ .rng input[type=range]::-webkit-slider-thumb:active { transform: scale(1.3); }
160
+ .rng .rng-val {
161
+ font-size: 11px; color: var(--gold); font-weight: 700;
162
+ min-width: 28px; text-align: right; flex-shrink: 0;
163
+ font-variant-numeric: tabular-nums;
499
164
  }
500
- .rng input[type=range]::-moz-range-thumb {
501
- width: 18px;
502
- height: 18px;
503
- border-radius: 50%;
504
- background: #0f1511;
505
- border: 3px solid #5d8269;
506
- cursor: pointer;
165
+
166
+ /* ===== INPUTS ===== */
167
+ .ctrl input[type=text], .ctrl input[type=number] {
168
+ background: var(--bg3); border: 1px solid var(--border); color: var(--text);
169
+ padding: 5px 8px; border-radius: 6px; font-size: 12px; font-family: var(--font);
170
+ width: 64px; text-align: center; outline: none; transition: border-color 0.15s;
507
171
  }
508
- .rng input[type=range]:active::-webkit-slider-thumb { background: var(--accent); }
172
+ .ctrl input:focus { border-color: var(--gold); }
509
173
 
510
- .ctrl input[type=text],
511
- .ctrl input[type=number],
512
174
  .ctrl select {
513
- min-width: 130px;
514
- max-width: 170px;
515
- height: 34px;
516
- border: 1px solid #242d27;
517
- border-radius: 4px;
518
- background: #0d0f0d;
519
- color: #ecf4ee;
520
- font: 800 12px var(--font);
521
- outline: none;
522
- padding: 0 10px;
175
+ background: var(--bg3); border: 1px solid var(--border); color: var(--text2);
176
+ padding: 5px 8px; border-radius: 6px; font-size: 11px; font-family: var(--font);
177
+ cursor: pointer; outline: none; max-width: 120px;
523
178
  }
524
- .ctrl select { color: #c1cbc4; cursor: pointer; }
525
- .ctrl input:focus,
526
- .ctrl select:focus { border-color: rgba(49, 255, 122, .7); }
179
+ .ctrl select:focus { border-color: var(--gold); color: var(--text); }
527
180
 
528
- .color-actions {
529
- display: flex;
530
- align-items: center;
531
- gap: 10px;
532
- }
181
+ /* ===== COLOR PICKER ===== */
533
182
  .clr-btn {
534
- width: 24px;
535
- height: 24px;
536
- flex: 0 0 24px;
537
- border: 0;
538
- border-radius: 4px;
539
- cursor: pointer;
540
- position: relative;
541
- overflow: hidden;
542
- display: inline-block;
543
- box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 0 14px rgba(49, 255, 122, .14);
183
+ width: 28px; height: 28px; border-radius: 7px; border: 2px solid var(--border);
184
+ cursor: pointer; flex-shrink: 0; transition: border-color 0.15s; position: relative;
185
+ overflow: hidden; display: inline-block;
186
+ }
187
+ .clr-btn:hover { border-color: var(--gold); }
188
+ .clr-btn input[type=color] {
189
+ opacity: 0; position: absolute; inset: -4px; cursor: pointer;
190
+ }
191
+ .clr-btn .swatch {
192
+ width: 100%; height: 100%; border-radius: 4px;
544
193
  }
545
- .clr-btn input[type=color] { opacity: 0; position: absolute; inset: -4px; cursor: pointer; }
546
- .clr-btn .swatch { width: 100%; height: 100%; display: block; }
547
194
 
195
+ /* ===== KEYBIND BUTTON ===== */
548
196
  .key-btn {
549
- min-width: 62px;
550
- height: 32px;
551
- border: 1px solid #1c1c25;
552
- border-radius: 4px;
553
- background: #18181f;
554
- color: #d8d5e3;
555
- cursor: pointer;
556
- font: 900 12px var(--font);
197
+ background: var(--bg3); border: 1px solid var(--border); color: var(--text2);
198
+ padding: 5px 12px; border-radius: 6px; font-size: 11px; font-family: var(--font);
199
+ cursor: pointer; min-width: 48px; text-align: center; transition: all 0.15s; flex-shrink: 0;
200
+ font-weight: 600;
557
201
  }
202
+ .key-btn:hover { color: var(--text); border-color: var(--bg5); }
558
203
  .key-btn.listening {
559
- color: #fff;
560
- border-color: var(--accent);
561
- box-shadow: 0 0 16px rgba(49, 255, 122, .32);
562
- }
563
- .action-btn {
564
- min-width: 88px;
565
- color: #07100a;
566
- border-color: rgba(49, 255, 122, .45);
567
- background: var(--accent);
204
+ color: var(--gold); border-color: var(--gold);
205
+ box-shadow: 0 0 12px var(--gold-glow);
206
+ animation: key-pulse 0.8s infinite;
568
207
  }
208
+ @keyframes key-pulse { 0%,100%{ box-shadow: 0 0 4px var(--gold-glow); } 50%{ box-shadow: 0 0 18px var(--gold-glow); } }
569
209
 
210
+ /* ===== STATUS BAR ===== */
570
211
  #statusbar {
571
- position: relative;
572
- z-index: 1;
573
- width: var(--panel-w);
574
- min-height: 42px;
575
- display: flex;
576
- align-items: center;
577
- gap: 10px;
578
- margin-top: 8px;
579
- padding: 0 14px;
580
- border: 1px solid rgba(32, 245, 104, .24);
581
- border-radius: var(--radius);
582
- background: rgba(2, 3, 2, .96);
583
- color: #9aa69f;
584
- font-size: 12px;
212
+ display: flex; align-items: center; gap: 8px;
213
+ padding: 6px 14px; background: var(--bg2); border-top: 1px solid var(--border);
214
+ font-size: 11px; color: var(--text2); flex-shrink: 0; z-index: 20;
585
215
  }
586
216
  #statusbar .s-dot {
587
- width: 8px;
588
- height: 8px;
589
- border-radius: 50%;
590
- background: #5b5a68;
591
- flex: 0 0 8px;
217
+ width: 7px; height: 7px; border-radius: 50%; background: var(--text3); flex-shrink: 0;
592
218
  }
593
- #statusbar .s-dot.live { background: var(--green); box-shadow: 0 0 10px rgba(82, 227, 124, .6); }
594
- #statusbar .s-text { flex: 1; font-weight: 800; }
219
+ #statusbar .s-dot.live {
220
+ background: var(--green); box-shadow: 0 0 8px #2ecc7188;
221
+ animation: dot-pulse 1.5s infinite;
222
+ }
223
+ @keyframes dot-pulse { 0%,100%{ opacity: 1; } 50%{ opacity: 0.3; } }
224
+ #statusbar .s-text { flex: 1; font-size: 11px; }
595
225
  #statusbar .s-btn {
596
- height: 30px;
597
- min-width: 78px;
598
- border: 0;
599
- border-radius: 4px;
600
- background: var(--accent);
601
- color: #fff;
602
- cursor: pointer;
603
- font: 900 12px var(--font);
604
- box-shadow: 0 0 16px rgba(49, 255, 122, .22);
226
+ padding: 5px 14px; border-radius: 6px; font-size: 11px; font-weight: 700;
227
+ font-family: var(--font); cursor: pointer; transition: all 0.15s;
228
+ background: linear-gradient(135deg, var(--gold), var(--gold2));
229
+ color: #0a0a0a; border: none; letter-spacing: 0.3px;
605
230
  }
606
- #statusbar .s-btn:hover { filter: brightness(1.1); }
607
- #statusbar .s-btn:disabled { opacity: .35; cursor: not-allowed; box-shadow: none; }
608
- #statusbar .s-btn.stop { background: var(--danger); box-shadow: 0 0 16px rgba(241, 93, 98, .24); }
609
- #statusbar .kill-btn {
610
- background: #151916;
611
- color: #aaa5b8;
612
- box-shadow: none;
231
+ #statusbar .s-btn:hover { transform: translateY(-1px); box-shadow: 0 3px 12px var(--gold-glow); }
232
+ #statusbar .s-btn:disabled { opacity: 0.3; cursor: not-allowed; transform: none; }
233
+ #statusbar .s-btn.stop {
234
+ background: linear-gradient(135deg, var(--danger), #c0392b); color: #fff;
613
235
  }
614
236
 
615
- #debug-toast {
616
- position: fixed;
617
- left: 50%;
618
- bottom: 66px;
619
- z-index: 900;
620
- max-width: min(520px, calc(100vw - 28px));
621
- transform: translateX(-50%) translateY(10px);
622
- opacity: 0;
623
- pointer-events: none;
624
- padding: 12px 16px;
625
- border: 1px solid rgba(241, 93, 98, .5);
626
- border-radius: 8px;
627
- background: rgba(12, 3, 4, .96);
628
- color: #ffd8da;
629
- font: 900 12px var(--font);
630
- box-shadow: 0 18px 48px rgba(0,0,0,.48), 0 0 24px rgba(241, 93, 98, .16);
631
- transition: opacity .18s ease, transform .18s ease;
237
+ /* ===== LICENSE ===== */
238
+ #license-overlay {
239
+ position: fixed; inset: 0; background: var(--bg);
240
+ display: flex; align-items: center; justify-content: center; z-index: 1000;
632
241
  }
633
- #debug-toast.show {
634
- opacity: 1;
635
- transform: translateX(-50%) translateY(0);
242
+ #license-overlay::before {
243
+ content: ''; position: absolute; inset: 0;
244
+ background: radial-gradient(ellipse at center, #f0b90b18 0%, transparent 70%);
245
+ animation: bg-pulse 3s ease-in-out infinite;
636
246
  }
247
+ @keyframes bg-pulse { 0%,100%{ opacity: 0.3; } 50%{ opacity: 0.7; } }
637
248
 
638
- #license-overlay {
639
- position: fixed;
640
- inset: 0;
641
- display: flex;
642
- align-items: center;
643
- justify-content: center;
644
- z-index: 1000;
645
- background: #000;
646
- }
647
249
  #license-box {
648
- width: min(410px, calc(100vw - 34px));
649
- padding: 34px 28px;
650
- text-align: center;
651
- background: #050605;
652
- border: 1px solid rgba(32, 245, 104, .32);
653
- border-top-color: var(--accent);
654
- border-radius: 8px;
655
- box-shadow: 0 24px 70px rgba(0,0,0,.88);
656
- }
657
- #license-box .logo-icon { width: 56px; height: 56px; margin: 0 auto 14px; object-fit: contain; filter: drop-shadow(0 0 16px rgba(49, 255, 122, .24)); }
658
- #license-box h1 { font-size: 23px; font-weight: 900; margin-bottom: 4px; }
659
- #license-box h1 span { color: var(--accent); }
660
- #license-box .subtitle { color: var(--text3); font-size: 12px; margin-bottom: 20px; font-weight: 800; }
250
+ position: relative; background: var(--bg2); border: 1px solid var(--border);
251
+ border-radius: 16px; padding: 34px 28px; width: 400px; max-width: 90vw;
252
+ text-align: center; box-shadow: 0 0 60px rgba(0,0,0,.5);
253
+ }
254
+ #license-box .logo-icon { width: 48px; height: 48px; margin: 0 auto 14px; stroke: var(--gold); fill: none; stroke-width: 1.4; }
255
+ #license-box h1 { font-size: 20px; font-weight: 700; margin-bottom: 2px; }
256
+ #license-box h1 span { color: var(--gold); }
257
+ #license-box .subtitle { color: var(--text3); font-size: 12px; margin-bottom: 20px; }
661
258
  #license-box input[type=text] {
662
- width: 100%;
663
- height: 42px;
664
- background: #0a0c0a;
665
- border: 1px solid #26302a;
666
- color: #fff;
667
- padding: 0 14px;
668
- border-radius: 4px;
669
- font: 800 13px var(--font);
670
- outline: none;
671
- margin-bottom: 12px;
672
- text-align: center;
259
+ width: 100%; background: var(--bg3); border: 1px solid var(--border);
260
+ color: var(--text); padding: 10px 14px; border-radius: 8px; font-size: 14px;
261
+ font-family: var(--font); outline: none; margin-bottom: 12px; text-align: center;
262
+ transition: all 0.2s; letter-spacing: 1px;
673
263
  }
674
- #license-box input[type=text]:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(49, 255, 122, .14); }
264
+ #license-box input[type=text]:focus { border-color: var(--gold); box-shadow: 0 0 0 3px #f0b90b22; }
675
265
  #license-box button {
676
- width: 100%;
677
- height: 40px;
678
- background: var(--accent);
679
- color: #fff;
680
- border: 0;
681
- border-radius: 4px;
682
- font: 900 13px var(--font);
683
- cursor: pointer;
266
+ width: 100%; background: linear-gradient(135deg, var(--gold), var(--gold2));
267
+ color: #0a0a0a; border: none; padding: 10px; border-radius: 8px; font-size: 14px;
268
+ font-weight: 700; font-family: var(--font); cursor: pointer; transition: all 0.2s;
684
269
  }
685
- #license-box button:disabled { opacity: .45; cursor: not-allowed; }
686
- #license-box .msg { margin-top: 10px; font-size: 12px; font-weight: 800; min-height: 16px; }
687
- #license-box .msg.ok { color: var(--green); }
688
- #license-box .msg.err { color: var(--danger); }
270
+ #license-box button:hover { transform: translateY(-1px); box-shadow: 0 4px 16px var(--gold-glow); }
271
+ #license-box button:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }
272
+ #license-box .msg { margin-top: 10px; font-size: 12px; font-weight: 500; min-height: 16px; }
273
+ #license-box .msg.ok { color: var(--green); } #license-box .msg.err { color: var(--danger); }
689
274
 
690
- #qr-overlay {
691
- position: fixed;
692
- inset: 0;
693
- display: none;
694
- align-items: center;
695
- justify-content: center;
696
- z-index: 2000;
697
- background: rgba(0, 0, 0, .96);
698
- }
699
- #qr-overlay.show { display: flex; }
700
- #qr-box {
701
- width: min(340px, calc(100vw - 30px));
702
- background: #050605;
703
- border: 1px solid rgba(49, 255, 122, .3);
704
- border-radius: 8px;
705
- padding: 22px;
706
- text-align: center;
707
- box-shadow: 0 24px 70px rgba(0,0,0,.5);
708
- }
709
- #qr-box img { width: min(240px, 74vw) !important; height: auto !important; border-radius: 4px !important; }
275
+ /* ===== QR OVERLAY ===== */
276
+ #qr-overlay{position:fixed;inset:0;background:rgba(5,5,8,0.93);display:none;align-items:center;justify-content:center;z-index:2000}
277
+ #qr-overlay.show{display:flex}
278
+ #qr-box{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:24px;text-align:center;box-shadow:0 0 40px var(--gold-dim);max-width:90vw}
279
+ #qr-box canvas{display:block;margin:0 auto;max-width:240px;max-height:240px}
710
280
 
711
- .esp-preview-panel {
712
- height: 100%;
713
- min-height: 430px;
714
- background: rgba(8, 10, 8, .96);
715
- border: 1px solid rgba(43, 55, 47, .78);
716
- border-top-color: rgba(49, 255, 122, .78);
717
- border-radius: 8px;
718
- padding: 18px;
719
- box-shadow: inset 0 1px 0 rgba(255,255,255,.02), 0 18px 42px rgba(0,0,0,.18);
720
- }
721
- .esp-preview-panel h3 {
722
- font-size: 12px;
723
- color: #819086;
724
- margin-bottom: 16px;
725
- font-weight: 900;
726
- letter-spacing: 0;
727
- }
728
- .esp-stage {
729
- height: calc(100% - 32px);
730
- min-height: 360px;
731
- position: relative;
732
- overflow: hidden;
733
- border-radius: 6px;
734
- background:
735
- linear-gradient(180deg, rgba(22, 27, 24, .9) 0 54%, rgba(12, 23, 15, .94) 54%),
736
- radial-gradient(circle at 72% 42%, rgba(49, 255, 122, .13), transparent 28%);
737
- border: 1px solid #202922;
738
- }
739
- .esp-grid-bg {
740
- position: absolute;
741
- inset: 0;
742
- background:
743
- linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
744
- linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
745
- background-size: 30px 30px;
746
- opacity: .35;
747
- }
748
- .esp-horizon {
749
- position: absolute;
750
- left: -20%;
751
- right: -20%;
752
- top: 54%;
753
- height: 1px;
754
- background: rgba(255,255,255,.11);
755
- }
756
- .esp-crosshair {
757
- position: absolute;
758
- left: 50%;
759
- top: 48%;
760
- width: 28px;
761
- height: 28px;
762
- transform: translate(-50%, -50%);
763
- border: 1px solid rgba(255,255,255,.2);
764
- border-radius: 50%;
765
- }
766
- .esp-crosshair::before,
767
- .esp-crosshair::after {
768
- content: '';
769
- position: absolute;
770
- background: rgba(255,255,255,.28);
771
- }
772
- .esp-crosshair::before { width: 1px; height: 38px; left: 50%; top: -5px; }
773
- .esp-crosshair::after { height: 1px; width: 38px; top: 50%; left: -5px; }
774
- .esp-target {
775
- position: absolute;
776
- left: 50%;
777
- top: 52%;
778
- width: 98px;
779
- height: 188px;
780
- transform: translate(-50%, -50%);
781
- }
782
- .esp-target.is-off { opacity: .32; filter: grayscale(.4); }
783
- .esp-box {
784
- position: absolute;
785
- inset: 18px 16px 12px;
786
- border: var(--esp-thick) dashed var(--esp-color);
787
- filter: drop-shadow(0 0 7px var(--esp-color));
788
- z-index: 3;
789
- }
790
- .esp-box.solid { border-style: solid; }
791
- .esp-box.corner { border: 0; }
792
- .esp-box.corner::before,
793
- .esp-box.corner::after {
794
- content: '';
795
- position: absolute;
796
- inset: 0;
797
- background:
798
- linear-gradient(var(--esp-color), var(--esp-color)) left top / 20px var(--esp-thick) no-repeat,
799
- linear-gradient(var(--esp-color), var(--esp-color)) left top / var(--esp-thick) 20px no-repeat,
800
- linear-gradient(var(--esp-color), var(--esp-color)) right top / 20px var(--esp-thick) no-repeat,
801
- linear-gradient(var(--esp-color), var(--esp-color)) right top / var(--esp-thick) 20px no-repeat,
802
- linear-gradient(var(--esp-color), var(--esp-color)) left bottom / 20px var(--esp-thick) no-repeat,
803
- linear-gradient(var(--esp-color), var(--esp-color)) left bottom / var(--esp-thick) 20px no-repeat,
804
- linear-gradient(var(--esp-color), var(--esp-color)) right bottom / 20px var(--esp-thick) no-repeat,
805
- linear-gradient(var(--esp-color), var(--esp-color)) right bottom / var(--esp-thick) 20px no-repeat;
806
- }
807
- .esp-head {
808
- position: absolute;
809
- left: 50%;
810
- top: 27px;
811
- width: var(--head-size);
812
- height: var(--head-size);
813
- transform: translateX(-50%);
814
- border: 2px solid var(--esp-color);
815
- border-radius: 50%;
816
- filter: drop-shadow(0 0 8px var(--esp-color));
817
- z-index: 6;
818
- }
819
- .esp-skeleton {
820
- position: absolute;
821
- left: 50%;
822
- top: 60px;
823
- width: 58px;
824
- height: 102px;
825
- transform: translateX(-50%);
826
- z-index: 5;
827
- pointer-events: none;
828
- }
829
- .esp-skeleton span {
830
- position: absolute;
831
- background: var(--esp-color);
832
- box-shadow: 0 0 8px var(--esp-color);
833
- }
834
- .esp-skeleton.dashed span { background: repeating-linear-gradient(180deg, var(--esp-color) 0 7px, transparent 7px 11px); }
835
- .esp-skeleton .spine { left: 50%; top: 0; width: var(--esp-thick); height: 60px; transform: translateX(-50%); }
836
- .esp-skeleton .arms { left: 12px; top: 24px; width: 34px; height: var(--esp-thick); transform: rotate(8deg); }
837
- .esp-skeleton .leg { bottom: 0; width: var(--esp-thick); height: 46px; transform-origin: top; }
838
- .esp-skeleton .leg.left { left: 27px; transform: rotate(17deg); }
839
- .esp-skeleton .leg.right { left: 30px; transform: rotate(-17deg); }
840
- .esp-bar {
841
- position: absolute;
842
- top: 20px;
843
- bottom: 14px;
844
- width: 5px;
845
- background: rgba(0,0,0,.55);
846
- border-radius: 999px;
847
- overflow: hidden;
848
- box-shadow: 0 0 0 1px rgba(255,255,255,.08);
849
- z-index: 4;
850
- }
851
- .esp-bar.health { left: 5px; }
852
- .esp-bar.armor { right: 5px; }
853
- .esp-bar span {
854
- position: absolute;
855
- left: 0;
856
- right: 0;
857
- bottom: 0;
858
- height: 78%;
859
- background: var(--esp-color);
860
- }
861
- .esp-bar.armor span { height: 54%; }
862
- .esp-text {
863
- position: absolute;
864
- color: var(--esp-color);
865
- font-size: 11px;
866
- line-height: 1;
867
- font-weight: 900;
868
- white-space: nowrap;
869
- text-shadow: 0 1px 4px #000, 0 0 8px var(--esp-color);
870
- z-index: 7;
871
- }
872
- .esp-text.top { left: 50%; top: 0; transform: translate(-50%, -100%); }
873
- .esp-text.bottom { left: 50%; bottom: -2px; transform: translate(-50%, 100%); }
874
- .esp-text.left-upper { left: 3px; top: 22px; transform: translateX(-100%); }
875
- .esp-text.right-upper { right: 3px; top: 22px; transform: translateX(100%); }
876
- .esp-text.left-lower { left: 3px; bottom: 24px; transform: translateX(-100%); }
877
- .esp-text.right-lower { right: 3px; bottom: 24px; transform: translateX(100%); }
878
- .esp-line {
879
- position: absolute;
880
- left: 50%;
881
- width: var(--esp-thick);
882
- height: 38%;
883
- background: var(--esp-color);
884
- box-shadow: 0 0 8px var(--esp-color);
885
- transform-origin: top;
886
- z-index: 2;
887
- }
888
- .esp-line.place-0 { bottom: 0; top: auto; transform: translateX(-50%) rotate(0deg); }
889
- .esp-line.place-1 { top: 50%; transform: translate(-50%, -4px) rotate(0deg); }
890
- .esp-line.place-2 { top: 0; transform: translateX(-50%) rotate(0deg); }
891
- .esp-tracer {
892
- position: absolute;
893
- left: 18%;
894
- top: 82%;
895
- width: 72%;
896
- height: var(--esp-thick);
897
- background: var(--esp-color);
898
- transform: rotate(-19deg);
899
- transform-origin: left center;
900
- box-shadow: 0 0 8px var(--esp-color);
901
- z-index: 2;
902
- }
903
- .esp-offscreen {
904
- position: absolute;
905
- right: 26px;
906
- top: 34px;
907
- width: 0;
908
- height: 0;
909
- border-top: 10px solid transparent;
910
- border-bottom: 10px solid transparent;
911
- border-left: 18px solid var(--esp-color);
912
- filter: drop-shadow(0 0 8px var(--esp-color));
913
- }
914
- .esp-caption {
915
- position: absolute;
916
- left: 12px;
917
- bottom: 10px;
918
- color: #777486;
919
- font-size: 11px;
920
- font-weight: 900;
281
+ /* ===== DESKTOP LAYOUT ===== */
282
+ @media(min-width:769px) {
283
+ #app { flex-direction: row; }
284
+ #sidebar { position: sticky; top: 0; height: 100vh; }
921
285
  }
922
286
 
923
- @media (max-width: 900px) {
924
- body {
925
- padding: 0;
926
- justify-content: flex-start;
927
- }
928
- #app {
929
- width: 100vw;
930
- height: calc(100dvh - 48px);
931
- min-height: 0;
932
- border: 0;
933
- border-radius: 0;
934
- }
287
+ /* ===== MOBILE ===== */
288
+ @media(max-width:768px) {
289
+ body { background: var(--bg); }
290
+
291
+ #app { flex-direction: column; }
292
+
293
+ /* Bottom tab bar */
935
294
  #sidebar {
936
- width: 66px;
937
- flex-basis: 66px;
938
- }
939
- .brand {
940
- height: 58px;
941
- padding: 0;
942
- justify-content: center;
943
- font-size: 0;
944
- letter-spacing: 0;
945
- }
946
- .brand img { width: 34px; height: 34px; }
947
- .brand span { display: none; }
948
- .nav-scroll { padding: 6px; }
949
- .nav-heading {
950
- display: none;
951
- }
952
- .tab-btn {
953
- width: 52px;
954
- height: 48px;
955
- padding: 0;
956
- justify-content: center;
957
- gap: 0;
958
- margin-bottom: 4px;
959
- }
960
- .tab-label { display: none; }
961
- #topbar {
962
- height: auto;
963
- min-height: 64px;
964
- padding: 10px 14px;
965
- flex-wrap: wrap;
966
- gap: 8px;
967
- }
968
- .top-title {
969
- min-width: 0;
970
- flex: 1 1 auto;
971
- }
972
- .top-primary { font-size: 16px; }
973
- .profile-dot { width: 32px; height: 32px; flex-basis: 32px; }
974
- .sub-tabs {
975
- order: 3;
976
- flex: 0 0 100%;
977
- gap: 4px;
295
+ width: 100%; height: 52px; flex-direction: row; justify-content: space-around;
296
+ align-items: center; padding: 0 2px; border-right: none; border-top: 1px solid var(--border);
297
+ order: 2; flex-shrink: 0; gap: 0; overflow-x: auto;
298
+ background: var(--bg2);
978
299
  }
979
- .sub-tab {
980
- padding: 7px 9px;
981
- font-size: 11px;
300
+ #sidebar .tab-btn {
301
+ width: 40px; height: 40px; min-width: 40px; border-radius: 8px; flex-shrink: 0;
982
302
  }
983
- #workspace {
984
- overflow-y: auto;
985
- flex-direction: column;
303
+ #sidebar .tab-btn svg { width: 17px; height: 17px; }
304
+ #sidebar .tab-btn.active::before {
305
+ left: 4px; right: 4px; top: auto; bottom: -5px;
306
+ width: auto; height: 3px; border-radius: 3px 3px 0 0;
986
307
  }
308
+
309
+ #content { order: 1; flex: 1; overflow: hidden; }
310
+
311
+ #topbar { height: 40px; padding: 0 10px; gap: 4px; }
312
+ #topbar .title { font-size: 12px; }
313
+ #topbar .sub { font-size: 11px; }
314
+ #topbar select { max-width: 90px; font-size: 10px; padding: 3px 6px; }
315
+
987
316
  #pages {
988
- flex: 0 0 auto;
989
- overflow: visible;
990
- grid-template-columns: 1fr;
991
- gap: 14px;
992
- padding: 14px;
993
- }
994
- #workspace.has-preview #pages {
995
- flex-basis: auto;
996
- }
997
- #esp-preview-shell {
998
- order: -1;
999
- flex: 0 0 auto;
1000
- padding: 14px 14px 0;
1001
- overflow: visible;
1002
- }
1003
- .child {
1004
- padding: 17px 16px;
1005
- }
1006
- .split-controls {
1007
- grid-template-columns: 1fr;
1008
- gap: 8px;
1009
- }
1010
- .split-right {
1011
- padding-left: 0;
1012
- border-left: 0;
1013
- }
1014
- .ctrl {
1015
- min-height: 46px;
1016
- gap: 12px;
317
+ padding: 8px; grid-template-columns: 1fr; gap: 8px;
1017
318
  }
1018
- .ctrl > label:not(.tgl) {
1019
- white-space: normal;
1020
- overflow: visible;
1021
- text-overflow: clip;
1022
- word-break: break-word;
1023
- font-size: 12px;
1024
- }
1025
- .ctrl input[type=text],
1026
- .ctrl input[type=number],
1027
- .ctrl select {
1028
- min-width: 112px;
1029
- max-width: 142px;
1030
- font-size: 12px;
1031
- }
1032
- .esp-preview-panel {
1033
- min-height: 360px;
1034
- height: auto;
1035
- }
1036
- .esp-stage { height: 300px; min-height: 300px; }
1037
- #statusbar {
1038
- position: fixed;
1039
- left: 0;
1040
- right: 0;
1041
- bottom: 0;
1042
- width: auto;
1043
- margin: 0;
1044
- min-height: 48px;
1045
- border-left: 0;
1046
- border-right: 0;
1047
- border-bottom: 0;
1048
- border-radius: 0;
1049
- gap: 7px;
1050
- overflow: hidden;
1051
- }
1052
- #statusbar .s-text { flex: 0 0 auto; min-width: 0; }
1053
- #statusbar .s-btn {
1054
- min-width: 52px;
1055
- flex: 0 0 52px;
1056
- height: 32px;
1057
- padding: 0 8px;
1058
- font-size: 10px;
1059
- }
1060
- #statusbar .kill-btn { flex-basis: 46px; min-width: 46px; }
1061
- #debug-toast {
1062
- bottom: 58px;
1063
- left: 66px;
1064
- right: 10px;
1065
- max-width: none;
1066
- transform: translateY(10px);
1067
- }
1068
- #debug-toast.show { transform: translateY(0); }
319
+
320
+ .child { padding: 12px 10px; border-radius: 8px; }
321
+ .child h3 { font-size: 8px; margin-bottom: 10px; }
322
+
323
+ .ctrl { margin-bottom: 6px; min-height: 30px; gap: 6px; }
324
+ .ctrl label { font-size: 11px; }
325
+
326
+ .tgl { width: 48px; height: 26px; }
327
+ .tgl .knob { height: 20px; width: 20px; }
328
+ .tgl input:checked + .track .knob,
329
+ .tgl input:checked ~ .knob { transform: translateX(24px); }
330
+
331
+ .rng input[type=range] { width: 70px; height: 6px; }
332
+ .rng input[type=range]::-webkit-slider-thumb { width: 22px; height: 22px; }
333
+ .rng .rng-val { font-size: 12px; }
334
+
335
+ .key-btn { padding: 6px 14px; min-width: 52px; font-size: 11px; }
336
+
337
+ .clr-btn { width: 32px; height: 32px; }
338
+
339
+ #statusbar { order: 3; padding: 5px 10px; font-size: 10px; border-top: none; border-bottom: 1px solid var(--border); }
340
+ #statusbar .s-btn { padding: 6px 14px; font-size: 11px; }
341
+
342
+ #license-box { padding: 28px 18px; border-radius: 14px; }
343
+ #license-box h1 { font-size: 18px; }
344
+ #license-box input[type=text] { padding: 12px 12px; font-size: 16px; }
345
+ #license-box button { padding: 12px; font-size: 15px; }
346
+
347
+ input, select, button { font-size: 16px !important; }
1069
348
  }
1070
349
 
1071
- @media (max-width: 600px) {
1072
- #sidebar {
1073
- width: 54px;
1074
- flex-basis: 54px;
1075
- }
1076
- .tab-btn {
1077
- width: 42px;
1078
- height: 44px;
1079
- }
1080
- .tab-btn svg { width: 17px; height: 17px; }
1081
- .brand { font-size: 0; }
1082
- #topbar { padding: 9px 10px; }
1083
- .sub-tab { font-size: 10px; padding: 6px 8px; }
1084
- .rng { grid-template-columns: 46px 1fr; gap: 10px; }
1085
- .color-row { align-items: flex-start; }
1086
- .color-actions { flex-shrink: 0; }
1087
- .esp-stage { height: 280px; min-height: 280px; }
1088
- .esp-preview-panel { min-height: 334px; }
1089
- #debug-toast { left: 56px; right: 8px; }
350
+ @media(max-width:380px) {
351
+ #sidebar .tab-btn { width: 34px; height: 36px; min-width: 34px; }
352
+ #sidebar .tab-btn svg { width: 15px; height: 15px; }
353
+ .rng input[type=range] { width: 56px; }
1090
354
  }