sensivity 2.5.41 → 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,1030 +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;
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;
128
48
  }
129
49
 
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;
151
- }
152
-
153
- .nav-scroll {
154
- flex: 1;
155
- overflow-y: auto;
156
- padding: 8px 10px 18px;
157
- }
158
-
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;
167
- }
168
-
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;
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;
186
55
  }
187
56
 
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;
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;
196
60
  }
197
61
 
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);
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);
202
66
  }
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);
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;
213
70
  }
214
71
 
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;
240
- }
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;
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;
276
79
  }
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
- .empty-state {
366
- grid-column: 1 / -1;
367
- min-height: 220px;
368
- display: grid;
369
- place-items: center;
370
- 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;
371
109
  }
110
+ .child h3::after { content: ''; flex: 1; height: 1px; background: var(--border); }
372
111
 
112
+ /* ===== CONTROL ===== */
373
113
  .ctrl {
374
- min-height: 38px;
375
- display: flex;
376
- align-items: center;
377
- justify-content: space-between;
378
- gap: 16px;
379
- margin-bottom: 10px;
380
- }
381
- .ctrl:last-child { margin-bottom: 0; }
382
- .ctrl > label:not(.tgl) {
383
- min-width: 0;
384
- color: #aeb8b0;
385
- font-size: 13px;
386
- line-height: 1.25;
387
- font-weight: 800;
388
- overflow: hidden;
389
- text-overflow: ellipsis;
390
- white-space: nowrap;
114
+ margin-bottom: 8px; display: flex; align-items: center;
115
+ justify-content: space-between; gap: 10px; min-height: 32px;
391
116
  }
392
- .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); }
393
119
 
120
+ /* ===== PREMIUM TOGGLE ===== */
394
121
  .tgl {
395
- width: 34px;
396
- height: 20px;
397
- flex: 0 0 34px;
398
- position: relative;
399
- display: inline-flex;
400
- align-items: center;
122
+ position: relative; width: 44px; height: 24px; flex-shrink: 0;
401
123
  }
402
- .tgl input { opacity: 0; width: 0; height: 0; position: absolute; }
124
+ .tgl input { opacity: 0; width: 0; height: 0; }
403
125
  .tgl .track {
404
- position: absolute;
405
- inset: 0;
406
- cursor: pointer;
407
- border-radius: 999px;
408
- background: #171a17;
409
- border: 1px solid #2a322d;
410
- 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;
411
129
  }
412
- .tgl .knob {
413
- position: absolute;
414
- left: 3px;
415
- top: 50%;
416
- width: 12px;
417
- height: 12px;
418
- border-radius: 50%;
419
- background: #69736b;
420
- transform: translateY(-50%);
421
- 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;
422
134
  }
423
- .tgl input:checked + .track {
424
- background: #102318;
425
- border-color: rgba(49, 255, 122, .56);
426
- 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);
427
139
  }
428
- .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; }
429
145
 
430
- .range-ctrl { align-items: flex-start; flex-direction: column; gap: 8px; }
146
+ /* ===== PREMIUM SLIDER ===== */
431
147
  .rng {
432
- width: 100%;
433
- display: grid;
434
- grid-template-columns: 54px 1fr;
435
- align-items: center;
436
- gap: 14px;
437
- padding: 2px 0 4px;
438
- }
439
- .rng-val {
440
- color: #d3ded6;
441
- font-size: 12px;
442
- font-weight: 900;
443
- text-align: right;
444
- font-variant-numeric: tabular-nums;
148
+ display: flex; align-items: center; gap: 8px; flex-shrink: 0;
445
149
  }
446
150
  .rng input[type=range] {
447
- -webkit-appearance: none;
448
- width: 100%;
449
- height: 22px;
450
- background: transparent;
451
- border-radius: 999px;
452
- outline: none;
453
- cursor: pointer;
454
- --range-percent: 0%;
455
- }
456
- .rng input[type=range]::-webkit-slider-runnable-track {
457
- height: 8px;
458
- border-radius: 999px;
459
- border: 1px solid rgba(32, 245, 104, .2);
460
- background:
461
- linear-gradient(90deg, rgba(32, 245, 104, .78) 0 var(--range-percent), #1c221e var(--range-percent) 100%);
462
- 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;
463
153
  }
464
154
  .rng input[type=range]::-webkit-slider-thumb {
465
- -webkit-appearance: none;
466
- width: 18px;
467
- height: 18px;
468
- margin-top: -6px;
469
- border-radius: 50%;
470
- background: #0f1511;
471
- border: 3px solid #5d8269;
472
- cursor: pointer;
473
- box-shadow: 0 0 0 3px rgba(32, 245, 104, .1), 0 0 18px rgba(32, 245, 104, .18);
474
- }
475
- .rng input[type=range]::-moz-range-track {
476
- height: 8px;
477
- border-radius: 999px;
478
- border: 1px solid rgba(32, 245, 104, .2);
479
- background: #1c221e;
480
- }
481
- .rng input[type=range]::-moz-range-progress {
482
- height: 8px;
483
- border-radius: 999px;
484
- 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;
485
164
  }
486
- .rng input[type=range]::-moz-range-thumb {
487
- width: 18px;
488
- height: 18px;
489
- border-radius: 50%;
490
- background: #0f1511;
491
- border: 3px solid #5d8269;
492
- 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;
493
171
  }
494
- .rng input[type=range]:active::-webkit-slider-thumb { background: var(--accent); }
172
+ .ctrl input:focus { border-color: var(--gold); }
495
173
 
496
- .ctrl input[type=text],
497
- .ctrl input[type=number],
498
174
  .ctrl select {
499
- min-width: 130px;
500
- max-width: 170px;
501
- height: 34px;
502
- border: 1px solid #242d27;
503
- border-radius: 4px;
504
- background: #0d0f0d;
505
- color: #ecf4ee;
506
- font: 800 12px var(--font);
507
- outline: none;
508
- 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;
509
178
  }
510
- .ctrl select { color: #c1cbc4; cursor: pointer; }
511
- .ctrl input:focus,
512
- .ctrl select:focus { border-color: rgba(49, 255, 122, .7); }
179
+ .ctrl select:focus { border-color: var(--gold); color: var(--text); }
513
180
 
514
- .color-actions {
515
- display: flex;
516
- align-items: center;
517
- gap: 10px;
518
- }
181
+ /* ===== COLOR PICKER ===== */
519
182
  .clr-btn {
520
- width: 24px;
521
- height: 24px;
522
- flex: 0 0 24px;
523
- border: 0;
524
- border-radius: 4px;
525
- cursor: pointer;
526
- position: relative;
527
- overflow: hidden;
528
- display: inline-block;
529
- 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;
530
193
  }
531
- .clr-btn input[type=color] { opacity: 0; position: absolute; inset: -4px; cursor: pointer; }
532
- .clr-btn .swatch { width: 100%; height: 100%; display: block; }
533
194
 
195
+ /* ===== KEYBIND BUTTON ===== */
534
196
  .key-btn {
535
- min-width: 62px;
536
- height: 32px;
537
- border: 1px solid #1c1c25;
538
- border-radius: 4px;
539
- background: #18181f;
540
- color: #d8d5e3;
541
- cursor: pointer;
542
- 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;
543
201
  }
202
+ .key-btn:hover { color: var(--text); border-color: var(--bg5); }
544
203
  .key-btn.listening {
545
- color: #fff;
546
- border-color: var(--accent);
547
- box-shadow: 0 0 16px rgba(49, 255, 122, .32);
548
- }
549
- .action-btn {
550
- min-width: 88px;
551
- color: #07100a;
552
- border-color: rgba(49, 255, 122, .45);
553
- 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;
554
207
  }
208
+ @keyframes key-pulse { 0%,100%{ box-shadow: 0 0 4px var(--gold-glow); } 50%{ box-shadow: 0 0 18px var(--gold-glow); } }
555
209
 
210
+ /* ===== STATUS BAR ===== */
556
211
  #statusbar {
557
- position: relative;
558
- z-index: 1;
559
- width: var(--panel-w);
560
- min-height: 42px;
561
- display: flex;
562
- align-items: center;
563
- gap: 10px;
564
- margin-top: 8px;
565
- padding: 0 14px;
566
- border: 1px solid rgba(32, 245, 104, .24);
567
- border-radius: var(--radius);
568
- background: rgba(2, 3, 2, .96);
569
- color: #9aa69f;
570
- 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;
571
215
  }
572
216
  #statusbar .s-dot {
573
- width: 8px;
574
- height: 8px;
575
- border-radius: 50%;
576
- background: #5b5a68;
577
- flex: 0 0 8px;
217
+ width: 7px; height: 7px; border-radius: 50%; background: var(--text3); flex-shrink: 0;
218
+ }
219
+ #statusbar .s-dot.live {
220
+ background: var(--green); box-shadow: 0 0 8px #2ecc7188;
221
+ animation: dot-pulse 1.5s infinite;
578
222
  }
579
- #statusbar .s-dot.live { background: var(--green); box-shadow: 0 0 10px rgba(82, 227, 124, .6); }
580
- #statusbar .s-text { flex: 1; font-weight: 800; }
223
+ @keyframes dot-pulse { 0%,100%{ opacity: 1; } 50%{ opacity: 0.3; } }
224
+ #statusbar .s-text { flex: 1; font-size: 11px; }
581
225
  #statusbar .s-btn {
582
- height: 30px;
583
- min-width: 78px;
584
- border: 0;
585
- border-radius: 4px;
586
- background: var(--accent);
587
- color: #fff;
588
- cursor: pointer;
589
- font: 900 12px var(--font);
590
- 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;
591
230
  }
592
- #statusbar .s-btn:hover { filter: brightness(1.1); }
593
- #statusbar .s-btn:disabled { opacity: .35; cursor: not-allowed; box-shadow: none; }
594
- #statusbar .s-btn.stop { background: var(--danger); box-shadow: 0 0 16px rgba(241, 93, 98, .24); }
595
- #statusbar .kill-btn {
596
- background: #151916;
597
- color: #aaa5b8;
598
- 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;
599
235
  }
600
236
 
601
- #debug-toast {
602
- position: fixed;
603
- left: 50%;
604
- bottom: 66px;
605
- z-index: 900;
606
- max-width: min(520px, calc(100vw - 28px));
607
- transform: translateX(-50%) translateY(10px);
608
- opacity: 0;
609
- pointer-events: none;
610
- padding: 12px 16px;
611
- border: 1px solid rgba(241, 93, 98, .5);
612
- border-radius: 8px;
613
- background: rgba(12, 3, 4, .96);
614
- color: #ffd8da;
615
- font: 900 12px var(--font);
616
- box-shadow: 0 18px 48px rgba(0,0,0,.48), 0 0 24px rgba(241, 93, 98, .16);
617
- 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;
618
241
  }
619
- #debug-toast.show {
620
- opacity: 1;
621
- 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;
622
246
  }
247
+ @keyframes bg-pulse { 0%,100%{ opacity: 0.3; } 50%{ opacity: 0.7; } }
623
248
 
624
- #license-overlay {
625
- position: fixed;
626
- inset: 0;
627
- display: flex;
628
- align-items: center;
629
- justify-content: center;
630
- z-index: 1000;
631
- background: #000;
632
- }
633
249
  #license-box {
634
- width: min(410px, calc(100vw - 34px));
635
- padding: 34px 28px;
636
- text-align: center;
637
- background: #050605;
638
- border: 1px solid rgba(32, 245, 104, .32);
639
- border-top-color: var(--accent);
640
- border-radius: 8px;
641
- box-shadow: 0 24px 70px rgba(0,0,0,.88);
642
- }
643
- #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)); }
644
- #license-box h1 { font-size: 23px; font-weight: 900; margin-bottom: 4px; }
645
- #license-box h1 span { color: var(--accent); }
646
- #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; }
647
258
  #license-box input[type=text] {
648
- width: 100%;
649
- height: 42px;
650
- background: #0a0c0a;
651
- border: 1px solid #26302a;
652
- color: #fff;
653
- padding: 0 14px;
654
- border-radius: 4px;
655
- font: 800 13px var(--font);
656
- outline: none;
657
- margin-bottom: 12px;
658
- 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;
659
263
  }
660
- #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; }
661
265
  #license-box button {
662
- width: 100%;
663
- height: 40px;
664
- background: var(--accent);
665
- color: #fff;
666
- border: 0;
667
- border-radius: 4px;
668
- font: 900 13px var(--font);
669
- 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;
670
269
  }
671
- #license-box button:disabled { opacity: .45; cursor: not-allowed; }
672
- #license-box .msg { margin-top: 10px; font-size: 12px; font-weight: 800; min-height: 16px; }
673
- #license-box .msg.ok { color: var(--green); }
674
- #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); }
675
274
 
676
- #qr-overlay {
677
- position: fixed;
678
- inset: 0;
679
- display: none;
680
- align-items: center;
681
- justify-content: center;
682
- z-index: 2000;
683
- background: rgba(0, 0, 0, .96);
684
- }
685
- #qr-overlay.show { display: flex; }
686
- #qr-box {
687
- width: min(340px, calc(100vw - 30px));
688
- background: #050605;
689
- border: 1px solid rgba(49, 255, 122, .3);
690
- border-radius: 8px;
691
- padding: 22px;
692
- text-align: center;
693
- box-shadow: 0 24px 70px rgba(0,0,0,.5);
694
- }
695
- #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}
696
280
 
697
- .esp-preview-panel {
698
- height: 100%;
699
- min-height: 430px;
700
- background: rgba(8, 10, 8, .96);
701
- border: 1px solid rgba(43, 55, 47, .78);
702
- border-top-color: rgba(49, 255, 122, .78);
703
- border-radius: 8px;
704
- padding: 18px;
705
- box-shadow: inset 0 1px 0 rgba(255,255,255,.02), 0 18px 42px rgba(0,0,0,.18);
706
- }
707
- .esp-preview-panel h3 {
708
- font-size: 12px;
709
- color: #819086;
710
- margin-bottom: 16px;
711
- font-weight: 900;
712
- letter-spacing: 0;
713
- }
714
- .esp-stage {
715
- height: calc(100% - 32px);
716
- min-height: 360px;
717
- position: relative;
718
- overflow: hidden;
719
- border-radius: 6px;
720
- background:
721
- linear-gradient(180deg, rgba(22, 27, 24, .9) 0 54%, rgba(12, 23, 15, .94) 54%),
722
- radial-gradient(circle at 72% 42%, rgba(49, 255, 122, .13), transparent 28%);
723
- border: 1px solid #202922;
724
- }
725
- .esp-grid-bg {
726
- position: absolute;
727
- inset: 0;
728
- background:
729
- linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
730
- linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
731
- background-size: 30px 30px;
732
- opacity: .35;
733
- }
734
- .esp-horizon {
735
- position: absolute;
736
- left: -20%;
737
- right: -20%;
738
- top: 54%;
739
- height: 1px;
740
- background: rgba(255,255,255,.11);
741
- }
742
- .esp-crosshair {
743
- position: absolute;
744
- left: 50%;
745
- top: 48%;
746
- width: 28px;
747
- height: 28px;
748
- transform: translate(-50%, -50%);
749
- border: 1px solid rgba(255,255,255,.2);
750
- border-radius: 50%;
751
- }
752
- .esp-crosshair::before,
753
- .esp-crosshair::after {
754
- content: '';
755
- position: absolute;
756
- background: rgba(255,255,255,.28);
757
- }
758
- .esp-crosshair::before { width: 1px; height: 38px; left: 50%; top: -5px; }
759
- .esp-crosshair::after { height: 1px; width: 38px; top: 50%; left: -5px; }
760
- .esp-target {
761
- position: absolute;
762
- left: 50%;
763
- top: 52%;
764
- width: 98px;
765
- height: 188px;
766
- transform: translate(-50%, -50%);
767
- }
768
- .esp-target.is-off { opacity: .32; filter: grayscale(.4); }
769
- .esp-box {
770
- position: absolute;
771
- inset: 18px 16px 12px;
772
- border: var(--esp-thick) dashed var(--esp-color);
773
- filter: drop-shadow(0 0 7px var(--esp-color));
774
- z-index: 3;
775
- }
776
- .esp-box.solid { border-style: solid; }
777
- .esp-box.corner { border: 0; }
778
- .esp-box.corner::before,
779
- .esp-box.corner::after {
780
- content: '';
781
- position: absolute;
782
- inset: 0;
783
- background:
784
- linear-gradient(var(--esp-color), var(--esp-color)) left top / 20px var(--esp-thick) no-repeat,
785
- linear-gradient(var(--esp-color), var(--esp-color)) left top / var(--esp-thick) 20px no-repeat,
786
- linear-gradient(var(--esp-color), var(--esp-color)) right top / 20px var(--esp-thick) no-repeat,
787
- linear-gradient(var(--esp-color), var(--esp-color)) right top / var(--esp-thick) 20px no-repeat,
788
- linear-gradient(var(--esp-color), var(--esp-color)) left bottom / 20px var(--esp-thick) no-repeat,
789
- linear-gradient(var(--esp-color), var(--esp-color)) left bottom / var(--esp-thick) 20px no-repeat,
790
- linear-gradient(var(--esp-color), var(--esp-color)) right bottom / 20px var(--esp-thick) no-repeat,
791
- linear-gradient(var(--esp-color), var(--esp-color)) right bottom / var(--esp-thick) 20px no-repeat;
792
- }
793
- .esp-head {
794
- position: absolute;
795
- left: 50%;
796
- top: 27px;
797
- width: var(--head-size);
798
- height: var(--head-size);
799
- transform: translateX(-50%);
800
- border: 2px solid var(--esp-color);
801
- border-radius: 50%;
802
- filter: drop-shadow(0 0 8px var(--esp-color));
803
- z-index: 6;
804
- }
805
- .esp-skeleton {
806
- position: absolute;
807
- left: 50%;
808
- top: 60px;
809
- width: 58px;
810
- height: 102px;
811
- transform: translateX(-50%);
812
- z-index: 5;
813
- pointer-events: none;
814
- }
815
- .esp-skeleton span {
816
- position: absolute;
817
- background: var(--esp-color);
818
- box-shadow: 0 0 8px var(--esp-color);
819
- }
820
- .esp-skeleton.dashed span { background: repeating-linear-gradient(180deg, var(--esp-color) 0 7px, transparent 7px 11px); }
821
- .esp-skeleton .spine { left: 50%; top: 0; width: var(--esp-thick); height: 60px; transform: translateX(-50%); }
822
- .esp-skeleton .arms { left: 12px; top: 24px; width: 34px; height: var(--esp-thick); transform: rotate(8deg); }
823
- .esp-skeleton .leg { bottom: 0; width: var(--esp-thick); height: 46px; transform-origin: top; }
824
- .esp-skeleton .leg.left { left: 27px; transform: rotate(17deg); }
825
- .esp-skeleton .leg.right { left: 30px; transform: rotate(-17deg); }
826
- .esp-bar {
827
- position: absolute;
828
- top: 20px;
829
- bottom: 14px;
830
- width: 5px;
831
- background: rgba(0,0,0,.55);
832
- border-radius: 999px;
833
- overflow: hidden;
834
- box-shadow: 0 0 0 1px rgba(255,255,255,.08);
835
- z-index: 4;
836
- }
837
- .esp-bar.health { left: 5px; }
838
- .esp-bar.armor { right: 5px; }
839
- .esp-bar span {
840
- position: absolute;
841
- left: 0;
842
- right: 0;
843
- bottom: 0;
844
- height: 78%;
845
- background: var(--esp-color);
846
- }
847
- .esp-bar.armor span { height: 54%; }
848
- .esp-text {
849
- position: absolute;
850
- color: var(--esp-color);
851
- font-size: 11px;
852
- line-height: 1;
853
- font-weight: 900;
854
- white-space: nowrap;
855
- text-shadow: 0 1px 4px #000, 0 0 8px var(--esp-color);
856
- z-index: 7;
857
- }
858
- .esp-text.top { left: 50%; top: 0; transform: translate(-50%, -100%); }
859
- .esp-text.bottom { left: 50%; bottom: -2px; transform: translate(-50%, 100%); }
860
- .esp-text.left-upper { left: 3px; top: 22px; transform: translateX(-100%); }
861
- .esp-text.right-upper { right: 3px; top: 22px; transform: translateX(100%); }
862
- .esp-text.left-lower { left: 3px; bottom: 24px; transform: translateX(-100%); }
863
- .esp-text.right-lower { right: 3px; bottom: 24px; transform: translateX(100%); }
864
- .esp-line {
865
- position: absolute;
866
- left: 50%;
867
- width: var(--esp-thick);
868
- height: 38%;
869
- background: var(--esp-color);
870
- box-shadow: 0 0 8px var(--esp-color);
871
- transform-origin: top;
872
- z-index: 2;
873
- }
874
- .esp-line.place-0 { bottom: 0; top: auto; transform: translateX(-50%) rotate(0deg); }
875
- .esp-line.place-1 { top: 50%; transform: translate(-50%, -4px) rotate(0deg); }
876
- .esp-line.place-2 { top: 0; transform: translateX(-50%) rotate(0deg); }
877
- .esp-tracer {
878
- position: absolute;
879
- left: 18%;
880
- top: 82%;
881
- width: 72%;
882
- height: var(--esp-thick);
883
- background: var(--esp-color);
884
- transform: rotate(-19deg);
885
- transform-origin: left center;
886
- box-shadow: 0 0 8px var(--esp-color);
887
- z-index: 2;
888
- }
889
- .esp-offscreen {
890
- position: absolute;
891
- right: 26px;
892
- top: 34px;
893
- width: 0;
894
- height: 0;
895
- border-top: 10px solid transparent;
896
- border-bottom: 10px solid transparent;
897
- border-left: 18px solid var(--esp-color);
898
- filter: drop-shadow(0 0 8px var(--esp-color));
899
- }
900
- .esp-caption {
901
- position: absolute;
902
- left: 12px;
903
- bottom: 10px;
904
- color: #777486;
905
- font-size: 11px;
906
- font-weight: 900;
281
+ /* ===== DESKTOP LAYOUT ===== */
282
+ @media(min-width:769px) {
283
+ #app { flex-direction: row; }
284
+ #sidebar { position: sticky; top: 0; height: 100vh; }
907
285
  }
908
286
 
909
- @media (max-width: 900px) {
910
- body {
911
- padding: 0;
912
- justify-content: flex-start;
913
- }
914
- #app {
915
- width: 100vw;
916
- height: calc(100dvh - 48px);
917
- min-height: 0;
918
- border: 0;
919
- border-radius: 0;
920
- }
287
+ /* ===== MOBILE ===== */
288
+ @media(max-width:768px) {
289
+ body { background: var(--bg); }
290
+
291
+ #app { flex-direction: column; }
292
+
293
+ /* Bottom tab bar */
921
294
  #sidebar {
922
- width: 66px;
923
- flex-basis: 66px;
924
- }
925
- .brand {
926
- height: 58px;
927
- padding: 0;
928
- justify-content: center;
929
- font-size: 0;
930
- letter-spacing: 0;
931
- }
932
- .brand img { width: 34px; height: 34px; }
933
- .brand span { display: none; }
934
- .nav-scroll { padding: 6px; }
935
- .nav-heading {
936
- display: none;
937
- }
938
- .tab-btn {
939
- width: 52px;
940
- height: 48px;
941
- padding: 0;
942
- justify-content: center;
943
- gap: 0;
944
- margin-bottom: 4px;
945
- }
946
- .tab-label { display: none; }
947
- #topbar {
948
- height: auto;
949
- min-height: 64px;
950
- padding: 10px 14px;
951
- flex-wrap: wrap;
952
- gap: 8px;
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);
953
299
  }
954
- .top-title {
955
- min-width: 0;
956
- flex: 1 1 auto;
300
+ #sidebar .tab-btn {
301
+ width: 40px; height: 40px; min-width: 40px; border-radius: 8px; flex-shrink: 0;
957
302
  }
958
- .top-primary { font-size: 16px; }
959
- .profile-dot { width: 32px; height: 32px; flex-basis: 32px; }
960
- .sub-tabs {
961
- order: 3;
962
- flex: 0 0 100%;
963
- gap: 4px;
964
- }
965
- .sub-tab {
966
- padding: 7px 9px;
967
- font-size: 11px;
968
- }
969
- #workspace {
970
- overflow-y: auto;
971
- 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;
972
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
+
973
316
  #pages {
974
- flex: 0 0 auto;
975
- overflow: visible;
976
- grid-template-columns: 1fr;
977
- gap: 14px;
978
- padding: 14px;
979
- }
980
- #workspace.has-preview #pages {
981
- flex-basis: auto;
982
- }
983
- #esp-preview-shell {
984
- order: -1;
985
- flex: 0 0 auto;
986
- padding: 14px 14px 0;
987
- overflow: visible;
988
- }
989
- .child {
990
- padding: 17px 16px;
991
- }
992
- .ctrl {
993
- min-height: 46px;
994
- gap: 12px;
317
+ padding: 8px; grid-template-columns: 1fr; gap: 8px;
995
318
  }
996
- .ctrl > label:not(.tgl) {
997
- white-space: normal;
998
- overflow: visible;
999
- text-overflow: clip;
1000
- word-break: break-word;
1001
- font-size: 12px;
1002
- }
1003
- .ctrl input[type=text],
1004
- .ctrl input[type=number],
1005
- .ctrl select {
1006
- min-width: 112px;
1007
- max-width: 142px;
1008
- font-size: 12px;
1009
- }
1010
- .esp-preview-panel {
1011
- min-height: 360px;
1012
- height: auto;
1013
- }
1014
- .esp-stage { height: 300px; min-height: 300px; }
1015
- #statusbar {
1016
- position: fixed;
1017
- left: 0;
1018
- right: 0;
1019
- bottom: 0;
1020
- width: auto;
1021
- margin: 0;
1022
- min-height: 48px;
1023
- border-left: 0;
1024
- border-right: 0;
1025
- border-bottom: 0;
1026
- border-radius: 0;
1027
- gap: 7px;
1028
- overflow: hidden;
1029
- }
1030
- #statusbar .s-text { flex: 0 0 auto; min-width: 0; }
1031
- #statusbar .s-btn {
1032
- min-width: 52px;
1033
- flex: 0 0 52px;
1034
- height: 32px;
1035
- padding: 0 8px;
1036
- font-size: 10px;
1037
- }
1038
- #statusbar .kill-btn { flex-basis: 46px; min-width: 46px; }
1039
- #debug-toast {
1040
- bottom: 58px;
1041
- left: 66px;
1042
- right: 10px;
1043
- max-width: none;
1044
- transform: translateY(10px);
1045
- }
1046
- #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; }
1047
348
  }
1048
349
 
1049
- @media (max-width: 600px) {
1050
- #sidebar {
1051
- width: 54px;
1052
- flex-basis: 54px;
1053
- }
1054
- .tab-btn {
1055
- width: 42px;
1056
- height: 44px;
1057
- }
1058
- .tab-btn svg { width: 17px; height: 17px; }
1059
- .brand { font-size: 0; }
1060
- #topbar { padding: 9px 10px; }
1061
- .sub-tab { font-size: 10px; padding: 6px 8px; }
1062
- .rng { grid-template-columns: 46px 1fr; gap: 10px; }
1063
- .color-row { align-items: flex-start; }
1064
- .color-actions { flex-shrink: 0; }
1065
- .esp-stage { height: 280px; min-height: 280px; }
1066
- .esp-preview-panel { min-height: 334px; }
1067
- #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; }
1068
354
  }