instbyte 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/client/css/app.css +648 -449
- package/client/index.html +8 -4
- package/client/js/app.js +162 -7
- package/package.json +1 -1
- package/server/server.js +67 -4
package/client/css/app.css
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
CSS CUSTOM PROPERTIES
|
|
3
|
+
============================================================ */
|
|
1
4
|
:root {
|
|
2
5
|
--color-primary: #111827;
|
|
3
6
|
--color-primary-hover: #1f2937;
|
|
@@ -10,6 +13,10 @@
|
|
|
10
13
|
--color-on-secondary: #ffffff;
|
|
11
14
|
}
|
|
12
15
|
|
|
16
|
+
|
|
17
|
+
/* ============================================================
|
|
18
|
+
BASE
|
|
19
|
+
============================================================ */
|
|
13
20
|
body {
|
|
14
21
|
font-family: system-ui;
|
|
15
22
|
background: #f3f4f6;
|
|
@@ -23,65 +30,13 @@ header {
|
|
|
23
30
|
border-bottom: 1px solid #e5e7eb;
|
|
24
31
|
}
|
|
25
32
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
margin: 20px auto;
|
|
29
|
-
padding: 0 12px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.channel-bar {
|
|
33
|
-
background: #e5e7eb;
|
|
34
|
-
border-radius: 12px;
|
|
35
|
-
padding: 6px;
|
|
36
|
-
margin-bottom: 16px;
|
|
37
|
-
display: flex;
|
|
38
|
-
align-items: center;
|
|
39
|
-
gap: 6px;
|
|
40
|
-
position: relative;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.channels {
|
|
44
|
-
flex: 1;
|
|
45
|
-
display: flex;
|
|
46
|
-
gap: 6px;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.channels::-webkit-scrollbar {
|
|
50
|
-
display: none;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.channels button {
|
|
54
|
-
position: relative;
|
|
55
|
-
display: flex;
|
|
56
|
-
align-items: center;
|
|
57
|
-
gap: 4px;
|
|
58
|
-
background: transparent;
|
|
33
|
+
button {
|
|
34
|
+
padding: 10px 14px;
|
|
59
35
|
border: none;
|
|
60
|
-
|
|
61
|
-
|
|
36
|
+
background: var(--color-primary);
|
|
37
|
+
color: var(--color-on-primary);
|
|
38
|
+
border-radius: 6px;
|
|
62
39
|
cursor: pointer;
|
|
63
|
-
font-size: 14px;
|
|
64
|
-
color: #4b5563;
|
|
65
|
-
transition: all 0.15s ease;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.channels button:hover {
|
|
69
|
-
background: #d1d5db;
|
|
70
|
-
color: #111827;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.channels button.active {
|
|
74
|
-
background: #f9fafb;
|
|
75
|
-
color: #111827;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.composer {
|
|
79
|
-
background: #fff;
|
|
80
|
-
padding: 12px;
|
|
81
|
-
border-radius: 8px;
|
|
82
|
-
margin-top: 12px;
|
|
83
|
-
display: flex;
|
|
84
|
-
gap: 8px;
|
|
85
40
|
}
|
|
86
41
|
|
|
87
42
|
input[type=text] {
|
|
@@ -91,85 +46,26 @@ input[type=text] {
|
|
|
91
46
|
border-radius: 6px;
|
|
92
47
|
}
|
|
93
48
|
|
|
94
|
-
button {
|
|
95
|
-
padding: 10px 14px;
|
|
96
|
-
border: none;
|
|
97
|
-
background: var(--color-primary);
|
|
98
|
-
color: var(--color-on-primary);
|
|
99
|
-
border-radius: 6px;
|
|
100
|
-
cursor: pointer;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
49
|
input[type=text]:focus {
|
|
104
50
|
outline: none;
|
|
105
51
|
border-color: var(--color-primary);
|
|
106
52
|
box-shadow: 0 0 0 3px var(--color-primary-light);
|
|
107
53
|
}
|
|
108
54
|
|
|
109
|
-
.drop {
|
|
110
|
-
border: 2px dashed #ccc;
|
|
111
|
-
padding: 18px;
|
|
112
|
-
margin-top: 12px;
|
|
113
|
-
text-align: center;
|
|
114
|
-
background: #fff;
|
|
115
|
-
border-radius: 8px;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.item {
|
|
119
|
-
background: #fff;
|
|
120
|
-
padding: 12px;
|
|
121
|
-
margin-top: 10px;
|
|
122
|
-
border-radius: 8px;
|
|
123
|
-
display: flex;
|
|
124
|
-
flex-direction: column;
|
|
125
|
-
}
|
|
126
55
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
font-size: 12px;
|
|
135
|
-
color: #6b7280;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.left {
|
|
139
|
-
max-width: 70%;
|
|
140
|
-
word-break: break-word;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
.item-actions {
|
|
144
|
-
display: flex;
|
|
145
|
-
gap: 8px;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
.icon-btn {
|
|
149
|
-
background: #f9fafb;
|
|
150
|
-
border: 1px solid #e5e7eb;
|
|
151
|
-
border-radius: 6px;
|
|
152
|
-
padding: 6px 8px;
|
|
153
|
-
cursor: pointer;
|
|
154
|
-
font-size: 14px;
|
|
155
|
-
line-height: 1;
|
|
156
|
-
color: #6b7280;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.icon-btn:hover {
|
|
160
|
-
background: #e5e7eb;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.icon-btn.delete {
|
|
164
|
-
color: #b91c1c;
|
|
165
|
-
border-color: #fecaca;
|
|
166
|
-
background: #fff;
|
|
56
|
+
/* ============================================================
|
|
57
|
+
LAYOUT
|
|
58
|
+
============================================================ */
|
|
59
|
+
.container {
|
|
60
|
+
max-width: 900px;
|
|
61
|
+
margin: 20px auto;
|
|
62
|
+
padding: 0 12px;
|
|
167
63
|
}
|
|
168
64
|
|
|
169
|
-
.icon-btn.delete:hover {
|
|
170
|
-
background: #fee2e2;
|
|
171
|
-
}
|
|
172
65
|
|
|
66
|
+
/* ============================================================
|
|
67
|
+
HEADER
|
|
68
|
+
============================================================ */
|
|
173
69
|
.app-header {
|
|
174
70
|
background: #ffffff;
|
|
175
71
|
border-bottom: 1px solid #e5e7eb;
|
|
@@ -203,6 +99,77 @@ input[type=text]:focus {
|
|
|
203
99
|
justify-content: center;
|
|
204
100
|
}
|
|
205
101
|
|
|
102
|
+
.header-right {
|
|
103
|
+
display: flex;
|
|
104
|
+
align-items: center;
|
|
105
|
+
gap: 8px;
|
|
106
|
+
font-size: 13px;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.username-display {
|
|
110
|
+
font-size: 13px;
|
|
111
|
+
color: #374151;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
border-bottom: 1px dashed transparent;
|
|
114
|
+
transition: border-color 0.15s ease, color 0.15s ease;
|
|
115
|
+
padding-bottom: 1px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.username-display:hover {
|
|
119
|
+
color: #111827;
|
|
120
|
+
border-bottom-color: #9ca3af;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.online-count {
|
|
124
|
+
font-size: 12px;
|
|
125
|
+
color: #9ca3af;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.link-btn {
|
|
129
|
+
background: none;
|
|
130
|
+
border: none;
|
|
131
|
+
color: #6b7280;
|
|
132
|
+
cursor: pointer;
|
|
133
|
+
font-size: 13px;
|
|
134
|
+
padding: 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.link-btn:hover {
|
|
138
|
+
color: #111827;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.theme-toggle {
|
|
142
|
+
font-size: 15px;
|
|
143
|
+
padding: 2px 6px;
|
|
144
|
+
border-radius: 6px;
|
|
145
|
+
transition: background 0.15s ease;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.theme-toggle:hover {
|
|
149
|
+
background: #f3f4f6;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.logout-btn {
|
|
153
|
+
background: none;
|
|
154
|
+
border: 1px solid #e5e7eb;
|
|
155
|
+
color: #6b7280;
|
|
156
|
+
cursor: pointer;
|
|
157
|
+
font-size: 12px;
|
|
158
|
+
padding: 4px 10px;
|
|
159
|
+
border-radius: 6px;
|
|
160
|
+
transition: all 0.15s ease;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.logout-btn:hover {
|
|
164
|
+
background: #fee2e2;
|
|
165
|
+
border-color: #fecaca;
|
|
166
|
+
color: #b91c1c;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/* ============================================================
|
|
171
|
+
SEARCH
|
|
172
|
+
============================================================ */
|
|
206
173
|
.search-wrapper {
|
|
207
174
|
position: relative;
|
|
208
175
|
width: 100%;
|
|
@@ -233,22 +200,53 @@ input[type=text]:focus {
|
|
|
233
200
|
color: #9ca3af;
|
|
234
201
|
}
|
|
235
202
|
|
|
236
|
-
|
|
203
|
+
|
|
204
|
+
/* ============================================================
|
|
205
|
+
CHANNEL BAR
|
|
206
|
+
============================================================ */
|
|
207
|
+
.channel-bar {
|
|
208
|
+
background: #e5e7eb;
|
|
209
|
+
border-radius: 12px;
|
|
210
|
+
padding: 6px;
|
|
211
|
+
margin-bottom: 16px;
|
|
237
212
|
display: flex;
|
|
238
213
|
align-items: center;
|
|
239
|
-
gap:
|
|
240
|
-
|
|
214
|
+
gap: 6px;
|
|
215
|
+
position: relative;
|
|
241
216
|
}
|
|
242
217
|
|
|
243
|
-
.
|
|
244
|
-
|
|
218
|
+
.channels {
|
|
219
|
+
flex: 1;
|
|
220
|
+
display: flex;
|
|
221
|
+
gap: 6px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.channels::-webkit-scrollbar {
|
|
225
|
+
display: none;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.channels button {
|
|
229
|
+
position: relative;
|
|
230
|
+
display: flex;
|
|
231
|
+
align-items: center;
|
|
232
|
+
gap: 4px;
|
|
233
|
+
background: transparent;
|
|
245
234
|
border: none;
|
|
246
|
-
|
|
235
|
+
padding: 7px 12px;
|
|
236
|
+
border-radius: 10px;
|
|
247
237
|
cursor: pointer;
|
|
248
|
-
font-size:
|
|
238
|
+
font-size: 14px;
|
|
239
|
+
color: #4b5563;
|
|
240
|
+
transition: all 0.15s ease;
|
|
249
241
|
}
|
|
250
242
|
|
|
251
|
-
.
|
|
243
|
+
.channels button:hover {
|
|
244
|
+
background: #d1d5db;
|
|
245
|
+
color: #111827;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.channels button.active {
|
|
249
|
+
background: #f9fafb;
|
|
252
250
|
color: #111827;
|
|
253
251
|
}
|
|
254
252
|
|
|
@@ -262,42 +260,117 @@ input[type=text]:focus {
|
|
|
262
260
|
cursor: pointer;
|
|
263
261
|
}
|
|
264
262
|
|
|
263
|
+
.add-channel:hover {
|
|
264
|
+
background: #d1d5db;
|
|
265
|
+
}
|
|
266
|
+
|
|
265
267
|
.add-channel-mobile {
|
|
266
268
|
display: none;
|
|
267
269
|
}
|
|
268
270
|
|
|
269
|
-
.
|
|
270
|
-
|
|
271
|
+
.ch-pin-dot {
|
|
272
|
+
display: inline-block;
|
|
273
|
+
width: 6px;
|
|
274
|
+
height: 6px;
|
|
275
|
+
background: #f59e0b;
|
|
276
|
+
border-radius: 50%;
|
|
277
|
+
flex-shrink: 0;
|
|
271
278
|
}
|
|
272
279
|
|
|
273
|
-
.
|
|
280
|
+
.ch-unread-dot {
|
|
274
281
|
display: inline-block;
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
282
|
+
width: 7px;
|
|
283
|
+
height: 7px;
|
|
284
|
+
background: #3b82f6;
|
|
285
|
+
border-radius: 50%;
|
|
286
|
+
flex-shrink: 0;
|
|
287
|
+
margin-left: 2px;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.ch-more {
|
|
291
|
+
display: inline-flex;
|
|
292
|
+
align-items: center;
|
|
293
|
+
justify-content: center;
|
|
294
|
+
width: 18px;
|
|
295
|
+
height: 18px;
|
|
278
296
|
border-radius: 4px;
|
|
279
|
-
|
|
280
|
-
|
|
297
|
+
font-size: 13px;
|
|
298
|
+
color: #6b7280;
|
|
299
|
+
opacity: 0;
|
|
300
|
+
transition: opacity 0.12s ease, background 0.12s ease;
|
|
301
|
+
margin-left: 2px;
|
|
302
|
+
line-height: 1;
|
|
281
303
|
}
|
|
282
304
|
|
|
283
|
-
.
|
|
284
|
-
|
|
285
|
-
|
|
305
|
+
.channels button:hover .ch-more,
|
|
306
|
+
.channels button.active .ch-more {
|
|
307
|
+
opacity: 1;
|
|
286
308
|
}
|
|
287
309
|
|
|
288
|
-
.
|
|
289
|
-
background:
|
|
290
|
-
color: #
|
|
310
|
+
.ch-more:hover {
|
|
311
|
+
background: rgba(0, 0, 0, 0.1);
|
|
312
|
+
color: #111827;
|
|
291
313
|
}
|
|
292
314
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
315
|
+
|
|
316
|
+
/* ============================================================
|
|
317
|
+
COMPOSER
|
|
318
|
+
============================================================ */
|
|
319
|
+
.composer {
|
|
320
|
+
background: #fff;
|
|
321
|
+
padding: 12px;
|
|
322
|
+
border-radius: 8px;
|
|
323
|
+
margin-top: 12px;
|
|
324
|
+
display: flex;
|
|
325
|
+
gap: 8px;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.drop {
|
|
329
|
+
border: 2px dashed #ccc;
|
|
330
|
+
padding: 18px;
|
|
331
|
+
margin-top: 12px;
|
|
332
|
+
text-align: center;
|
|
333
|
+
background: #fff;
|
|
334
|
+
border-radius: 8px;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
/* ============================================================
|
|
339
|
+
ITEMS
|
|
340
|
+
============================================================ */
|
|
341
|
+
.item {
|
|
342
|
+
background: #fff;
|
|
343
|
+
color: #111827;
|
|
344
|
+
padding: 12px;
|
|
345
|
+
margin-top: 10px;
|
|
346
|
+
border-radius: 8px;
|
|
347
|
+
display: flex;
|
|
348
|
+
flex-direction: column;
|
|
349
|
+
align-items: stretch;
|
|
350
|
+
transition: box-shadow 0.15s ease;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.item:hover {
|
|
354
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.item-top {
|
|
358
|
+
display: flex;
|
|
359
|
+
justify-content: space-between;
|
|
360
|
+
align-items: center;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.meta {
|
|
364
|
+
font-size: 12px;
|
|
365
|
+
color: #6b7280;
|
|
296
366
|
}
|
|
297
367
|
|
|
298
368
|
.left {
|
|
369
|
+
max-width: 70%;
|
|
370
|
+
word-break: break-word;
|
|
299
371
|
cursor: pointer;
|
|
300
372
|
position: relative;
|
|
373
|
+
color: #111827;
|
|
301
374
|
}
|
|
302
375
|
|
|
303
376
|
.left:hover::after {
|
|
@@ -321,68 +394,86 @@ input[type=text]:focus {
|
|
|
321
394
|
transition: background 0.3s ease;
|
|
322
395
|
}
|
|
323
396
|
|
|
324
|
-
.
|
|
325
|
-
position: fixed;
|
|
326
|
-
bottom: 20px;
|
|
327
|
-
right: 20px;
|
|
328
|
-
z-index: 999;
|
|
397
|
+
.item-actions {
|
|
329
398
|
display: flex;
|
|
330
|
-
flex-direction: column;
|
|
331
|
-
align-items: flex-end;
|
|
332
399
|
gap: 8px;
|
|
333
400
|
}
|
|
334
401
|
|
|
335
|
-
.
|
|
336
|
-
background: #fff;
|
|
337
|
-
border: 1px solid #e5e7eb;
|
|
338
|
-
border-radius: 12px;
|
|
339
|
-
padding: 16px;
|
|
402
|
+
.empty-state {
|
|
340
403
|
text-align: center;
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
404
|
+
color: #9ca3af;
|
|
405
|
+
font-size: 14px;
|
|
406
|
+
padding: 60px 20px;
|
|
344
407
|
}
|
|
345
408
|
|
|
346
|
-
.qr-card.open {
|
|
347
|
-
display: block;
|
|
348
|
-
}
|
|
349
409
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
410
|
+
/* ============================================================
|
|
411
|
+
SIZE TAGS
|
|
412
|
+
============================================================ */
|
|
413
|
+
.size-tag {
|
|
414
|
+
display: inline-block;
|
|
415
|
+
font-size: 11px;
|
|
416
|
+
font-weight: 500;
|
|
417
|
+
padding: 2px 7px;
|
|
418
|
+
border-radius: 4px;
|
|
419
|
+
margin-left: 6px;
|
|
420
|
+
vertical-align: middle;
|
|
354
421
|
}
|
|
355
422
|
|
|
356
|
-
.
|
|
357
|
-
|
|
358
|
-
color: #
|
|
359
|
-
margin-top: 8px;
|
|
360
|
-
word-break: break-all;
|
|
361
|
-
line-height: 1.4;
|
|
423
|
+
.size-tag.warn {
|
|
424
|
+
background: #fef9c3;
|
|
425
|
+
color: #854d0e;
|
|
362
426
|
}
|
|
363
427
|
|
|
364
|
-
.
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
color: #111827;
|
|
368
|
-
margin-bottom: 10px;
|
|
428
|
+
.size-tag.danger-light {
|
|
429
|
+
background: #fee2e2;
|
|
430
|
+
color: #b91c1c;
|
|
369
431
|
}
|
|
370
432
|
|
|
371
|
-
.
|
|
372
|
-
background: #
|
|
433
|
+
.size-tag.danger-dark {
|
|
434
|
+
background: #7f1d1d;
|
|
373
435
|
color: #fff;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
/* ============================================================
|
|
440
|
+
ICON BUTTONS
|
|
441
|
+
============================================================ */
|
|
442
|
+
.icon-btn {
|
|
443
|
+
background: #f9fafb;
|
|
444
|
+
border: 1px solid #e5e7eb;
|
|
445
|
+
border-radius: 6px;
|
|
446
|
+
padding: 6px 8px;
|
|
378
447
|
cursor: pointer;
|
|
379
|
-
|
|
448
|
+
font-size: 14px;
|
|
449
|
+
line-height: 1;
|
|
450
|
+
color: #6b7280;
|
|
380
451
|
}
|
|
381
452
|
|
|
382
|
-
.
|
|
383
|
-
background: #
|
|
453
|
+
.icon-btn:hover {
|
|
454
|
+
background: #e5e7eb;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.icon-btn.delete {
|
|
458
|
+
color: #b91c1c;
|
|
459
|
+
border-color: #fecaca;
|
|
460
|
+
background: #fff;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.icon-btn.delete:hover {
|
|
464
|
+
background: #fee2e2;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.icon-btn.preview-active {
|
|
468
|
+
background: #eff6ff;
|
|
469
|
+
border-color: #bfdbfe;
|
|
470
|
+
color: #1d4ed8;
|
|
384
471
|
}
|
|
385
472
|
|
|
473
|
+
|
|
474
|
+
/* ============================================================
|
|
475
|
+
MOVE DROPDOWN
|
|
476
|
+
============================================================ */
|
|
386
477
|
.move-wrapper {
|
|
387
478
|
position: relative;
|
|
388
479
|
}
|
|
@@ -412,61 +503,31 @@ input[type=text]:focus {
|
|
|
412
503
|
background: none;
|
|
413
504
|
border: none;
|
|
414
505
|
padding: 9px 14px;
|
|
415
|
-
font-size: 13px;
|
|
416
|
-
color: #374151;
|
|
417
|
-
cursor: pointer;
|
|
418
|
-
border-radius: 0;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
.move-dropdown button:hover {
|
|
422
|
-
background: #f3f4f6;
|
|
423
|
-
color: #111827;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
.move-dropdown .dropdown-label {
|
|
427
|
-
font-size: 11px;
|
|
428
|
-
color: #9ca3af;
|
|
429
|
-
padding: 8px 14px 4px;
|
|
430
|
-
font-weight: 500;
|
|
431
|
-
text-transform: uppercase;
|
|
432
|
-
letter-spacing: 0.05em;
|
|
433
|
-
cursor: default;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
.ch-pin-dot {
|
|
437
|
-
display: inline-block;
|
|
438
|
-
width: 6px;
|
|
439
|
-
height: 6px;
|
|
440
|
-
background: #f59e0b;
|
|
441
|
-
border-radius: 50%;
|
|
442
|
-
flex-shrink: 0;
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
.ch-more {
|
|
446
|
-
display: inline-flex;
|
|
447
|
-
align-items: center;
|
|
448
|
-
justify-content: center;
|
|
449
|
-
width: 18px;
|
|
450
|
-
height: 18px;
|
|
451
|
-
border-radius: 4px;
|
|
452
|
-
font-size: 13px;
|
|
453
|
-
color: #6b7280;
|
|
454
|
-
opacity: 0;
|
|
455
|
-
transition: opacity 0.12s ease, background 0.12s ease;
|
|
456
|
-
margin-left: 2px;
|
|
457
|
-
line-height: 1;
|
|
506
|
+
font-size: 13px;
|
|
507
|
+
color: #374151;
|
|
508
|
+
cursor: pointer;
|
|
509
|
+
border-radius: 0;
|
|
458
510
|
}
|
|
459
511
|
|
|
460
|
-
.
|
|
461
|
-
|
|
462
|
-
|
|
512
|
+
.move-dropdown button:hover {
|
|
513
|
+
background: #f3f4f6;
|
|
514
|
+
color: #111827;
|
|
463
515
|
}
|
|
464
516
|
|
|
465
|
-
.
|
|
466
|
-
|
|
467
|
-
color: #
|
|
517
|
+
.move-dropdown .dropdown-label {
|
|
518
|
+
font-size: 11px;
|
|
519
|
+
color: #9ca3af;
|
|
520
|
+
padding: 8px 14px 4px;
|
|
521
|
+
font-weight: 500;
|
|
522
|
+
text-transform: uppercase;
|
|
523
|
+
letter-spacing: 0.05em;
|
|
524
|
+
cursor: default;
|
|
468
525
|
}
|
|
469
526
|
|
|
527
|
+
|
|
528
|
+
/* ============================================================
|
|
529
|
+
CONTEXT MENU
|
|
530
|
+
============================================================ */
|
|
470
531
|
.context-menu {
|
|
471
532
|
position: fixed;
|
|
472
533
|
background: #fff;
|
|
@@ -526,6 +587,10 @@ input[type=text]:focus {
|
|
|
526
587
|
margin: 4px 0;
|
|
527
588
|
}
|
|
528
589
|
|
|
590
|
+
|
|
591
|
+
/* ============================================================
|
|
592
|
+
MARKDOWN
|
|
593
|
+
============================================================ */
|
|
529
594
|
.markdown-body {
|
|
530
595
|
line-height: 1.5;
|
|
531
596
|
font-size: 14px;
|
|
@@ -580,6 +645,10 @@ input[type=text]:focus {
|
|
|
580
645
|
padding-left: 20px;
|
|
581
646
|
}
|
|
582
647
|
|
|
648
|
+
|
|
649
|
+
/* ============================================================
|
|
650
|
+
PREVIEW PANEL
|
|
651
|
+
============================================================ */
|
|
583
652
|
.preview-panel {
|
|
584
653
|
display: none;
|
|
585
654
|
margin-top: 10px;
|
|
@@ -657,57 +726,165 @@ input[type=text]:focus {
|
|
|
657
726
|
padding: 12px 0;
|
|
658
727
|
}
|
|
659
728
|
|
|
660
|
-
.icon-btn.preview-active {
|
|
661
|
-
background: #eff6ff;
|
|
662
|
-
border-color: #bfdbfe;
|
|
663
|
-
color: #1d4ed8;
|
|
664
|
-
}
|
|
665
729
|
|
|
666
|
-
/*
|
|
667
|
-
|
|
730
|
+
/* ============================================================
|
|
731
|
+
QR WIDGET
|
|
732
|
+
============================================================ */
|
|
733
|
+
.qr-widget {
|
|
734
|
+
position: fixed;
|
|
735
|
+
bottom: 20px;
|
|
736
|
+
right: 20px;
|
|
737
|
+
z-index: 999;
|
|
738
|
+
display: flex;
|
|
668
739
|
flex-direction: column;
|
|
669
|
-
align-items:
|
|
670
|
-
|
|
740
|
+
align-items: flex-end;
|
|
741
|
+
gap: 8px;
|
|
671
742
|
}
|
|
672
743
|
|
|
673
|
-
.
|
|
744
|
+
.qr-card {
|
|
745
|
+
background: #fff;
|
|
746
|
+
border: 1px solid #e5e7eb;
|
|
747
|
+
border-radius: 12px;
|
|
748
|
+
padding: 16px;
|
|
749
|
+
text-align: center;
|
|
750
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
|
|
751
|
+
display: none;
|
|
752
|
+
width: 200px;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.qr-card.open {
|
|
756
|
+
display: block;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.qr-card img {
|
|
760
|
+
width: 160px;
|
|
761
|
+
height: 160px;
|
|
762
|
+
border-radius: 6px;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
.qr-card .qr-url {
|
|
766
|
+
font-size: 11px;
|
|
767
|
+
color: #6b7280;
|
|
768
|
+
margin-top: 8px;
|
|
769
|
+
word-break: break-all;
|
|
770
|
+
line-height: 1.4;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
.qr-card .qr-label {
|
|
774
|
+
font-size: 12px;
|
|
775
|
+
font-weight: 600;
|
|
776
|
+
color: #111827;
|
|
777
|
+
margin-bottom: 10px;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
.qr-toggle {
|
|
781
|
+
background: #111827;
|
|
782
|
+
color: #fff;
|
|
783
|
+
border: none;
|
|
784
|
+
border-radius: 20px;
|
|
785
|
+
padding: 8px 14px;
|
|
786
|
+
font-size: 13px;
|
|
787
|
+
cursor: pointer;
|
|
788
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
.qr-toggle:hover {
|
|
792
|
+
background: #1f2937;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
/* ============================================================
|
|
797
|
+
UNDO TOAST
|
|
798
|
+
============================================================ */
|
|
799
|
+
.undo-toast {
|
|
800
|
+
position: fixed;
|
|
801
|
+
bottom: 30px;
|
|
802
|
+
left: 50%;
|
|
803
|
+
transform: translateX(-50%) translateY(80px);
|
|
804
|
+
background: #1f2937;
|
|
805
|
+
color: #f3f4f6;
|
|
806
|
+
padding: 12px 16px;
|
|
807
|
+
border-radius: 10px;
|
|
808
|
+
font-size: 13px;
|
|
674
809
|
display: flex;
|
|
675
|
-
justify-content: space-between;
|
|
676
810
|
align-items: center;
|
|
811
|
+
gap: 12px;
|
|
812
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
813
|
+
z-index: 9999;
|
|
814
|
+
opacity: 0;
|
|
815
|
+
transition: transform 0.2s ease, opacity 0.2s ease;
|
|
816
|
+
min-width: 220px;
|
|
817
|
+
overflow: hidden;
|
|
677
818
|
}
|
|
678
819
|
|
|
679
|
-
.
|
|
680
|
-
|
|
820
|
+
.undo-toast.show {
|
|
821
|
+
transform: translateX(-50%) translateY(0);
|
|
822
|
+
opacity: 1;
|
|
681
823
|
}
|
|
682
824
|
|
|
683
|
-
.
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
padding:
|
|
825
|
+
.undo-toast #undoBtn {
|
|
826
|
+
background: none;
|
|
827
|
+
border: 1px solid #4b5563;
|
|
828
|
+
color: #f3f4f6;
|
|
829
|
+
padding: 4px 10px;
|
|
830
|
+
border-radius: 6px;
|
|
831
|
+
font-size: 12px;
|
|
832
|
+
cursor: pointer;
|
|
833
|
+
flex-shrink: 0;
|
|
688
834
|
}
|
|
689
835
|
|
|
690
|
-
.
|
|
691
|
-
|
|
692
|
-
padding: 2px 6px;
|
|
693
|
-
border-radius: 6px;
|
|
694
|
-
transition: background 0.15s ease;
|
|
836
|
+
.undo-toast #undoBtn:hover {
|
|
837
|
+
background: #374151;
|
|
695
838
|
}
|
|
696
839
|
|
|
697
|
-
.
|
|
698
|
-
|
|
840
|
+
.undo-progress {
|
|
841
|
+
position: absolute;
|
|
842
|
+
bottom: 0;
|
|
843
|
+
left: 0;
|
|
844
|
+
height: 3px;
|
|
845
|
+
width: 100%;
|
|
846
|
+
background: #4b5563;
|
|
847
|
+
transform-origin: left;
|
|
848
|
+
animation: none;
|
|
699
849
|
}
|
|
700
850
|
|
|
701
|
-
|
|
702
|
-
:
|
|
703
|
-
|
|
851
|
+
.undo-progress.running {
|
|
852
|
+
animation: drain 5s linear forwards;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
@keyframes drain {
|
|
856
|
+
from {
|
|
857
|
+
transform: scaleX(1);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
to {
|
|
861
|
+
transform: scaleX(0);
|
|
704
862
|
}
|
|
705
863
|
}
|
|
706
864
|
|
|
707
|
-
|
|
708
|
-
|
|
865
|
+
|
|
866
|
+
/* ============================================================
|
|
867
|
+
LOAD MORE
|
|
868
|
+
============================================================ */
|
|
869
|
+
.load-more-btn {
|
|
870
|
+
background: #f3f4f6;
|
|
871
|
+
color: #374151;
|
|
872
|
+
border: 1px solid #e5e7eb;
|
|
873
|
+
border-radius: 8px;
|
|
874
|
+
padding: 10px 24px;
|
|
875
|
+
font-size: 14px;
|
|
876
|
+
cursor: pointer;
|
|
877
|
+
transition: background 0.15s ease;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
.load-more-btn:hover {
|
|
881
|
+
background: #e5e7eb;
|
|
709
882
|
}
|
|
710
883
|
|
|
884
|
+
|
|
885
|
+
/* ============================================================
|
|
886
|
+
MOBILE
|
|
887
|
+
============================================================ */
|
|
711
888
|
@media (max-width: 640px) {
|
|
712
889
|
.app-header {
|
|
713
890
|
flex-wrap: wrap;
|
|
@@ -834,9 +1011,16 @@ input[type=text]:focus {
|
|
|
834
1011
|
}
|
|
835
1012
|
}
|
|
836
1013
|
|
|
1014
|
+
|
|
1015
|
+
/* ============================================================
|
|
1016
|
+
DARK MODE
|
|
1017
|
+
Two selectors, identical rules — no duplication within each.
|
|
1018
|
+
Media query handles OS preference.
|
|
1019
|
+
[data-theme="dark"] handles manual override.
|
|
1020
|
+
============================================================ */
|
|
1021
|
+
|
|
837
1022
|
@media (prefers-color-scheme: dark) {
|
|
838
1023
|
:root:not([data-theme="light"]) {
|
|
839
|
-
|
|
840
1024
|
body {
|
|
841
1025
|
background: #0f1117;
|
|
842
1026
|
}
|
|
@@ -850,6 +1034,46 @@ input[type=text]:focus {
|
|
|
850
1034
|
color: #f3f4f6;
|
|
851
1035
|
}
|
|
852
1036
|
|
|
1037
|
+
.logo {
|
|
1038
|
+
filter: invert(1) brightness(1.2);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
.username-display {
|
|
1042
|
+
color: #d1d5db;
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
.username-display:hover {
|
|
1046
|
+
color: #f3f4f6;
|
|
1047
|
+
border-bottom-color: #6b7280;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
.online-count {
|
|
1051
|
+
color: #6b7280;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
.link-btn {
|
|
1055
|
+
color: #9ca3af;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
.link-btn:hover {
|
|
1059
|
+
color: #f3f4f6;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
.theme-toggle:hover {
|
|
1063
|
+
background: #2d3148;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
.logout-btn {
|
|
1067
|
+
border-color: #2d3148;
|
|
1068
|
+
color: #9ca3af;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
.logout-btn:hover {
|
|
1072
|
+
background: #2d1515;
|
|
1073
|
+
border-color: #7f1d1d;
|
|
1074
|
+
color: #f87171;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
853
1077
|
.search-wrapper input {
|
|
854
1078
|
background: #252836;
|
|
855
1079
|
border-color: #2d3148;
|
|
@@ -869,18 +1093,6 @@ input[type=text]:focus {
|
|
|
869
1093
|
color: #6b7280;
|
|
870
1094
|
}
|
|
871
1095
|
|
|
872
|
-
.logo {
|
|
873
|
-
filter: invert(1) brightness(1.2);
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
.link-btn {
|
|
877
|
-
color: #9ca3af;
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
.link-btn:hover {
|
|
881
|
-
color: #f3f4f6;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
1096
|
.channel-bar {
|
|
885
1097
|
background: #1a1d27;
|
|
886
1098
|
}
|
|
@@ -943,6 +1155,7 @@ input[type=text]:focus {
|
|
|
943
1155
|
|
|
944
1156
|
.item {
|
|
945
1157
|
background: #1a1d27;
|
|
1158
|
+
color: #e5e7eb;
|
|
946
1159
|
}
|
|
947
1160
|
|
|
948
1161
|
.item:hover {
|
|
@@ -953,29 +1166,35 @@ input[type=text]:focus {
|
|
|
953
1166
|
color: #60a5fa;
|
|
954
1167
|
}
|
|
955
1168
|
|
|
956
|
-
.
|
|
957
|
-
color: #
|
|
1169
|
+
.left {
|
|
1170
|
+
color: #e5e7eb;
|
|
958
1171
|
}
|
|
959
1172
|
|
|
960
|
-
.
|
|
961
|
-
|
|
1173
|
+
.left.flash {
|
|
1174
|
+
background: #064e3b;
|
|
962
1175
|
}
|
|
963
1176
|
|
|
964
|
-
.
|
|
965
|
-
|
|
966
|
-
|
|
1177
|
+
.left:hover::after {
|
|
1178
|
+
background: #374151;
|
|
1179
|
+
color: #f3f4f6;
|
|
967
1180
|
}
|
|
968
1181
|
|
|
969
|
-
.
|
|
970
|
-
|
|
971
|
-
border-color: #2d3148;
|
|
972
|
-
color: #e5e7eb;
|
|
1182
|
+
.meta {
|
|
1183
|
+
color: #6b7280;
|
|
973
1184
|
}
|
|
974
1185
|
|
|
975
|
-
.
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
1186
|
+
.empty-state {
|
|
1187
|
+
color: #4b5563;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
.size-tag.warn {
|
|
1191
|
+
background: #422006;
|
|
1192
|
+
color: #fbbf24;
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
.size-tag.danger-light {
|
|
1196
|
+
background: #2d1515;
|
|
1197
|
+
color: #f87171;
|
|
979
1198
|
}
|
|
980
1199
|
|
|
981
1200
|
.icon-btn {
|
|
@@ -1053,18 +1272,25 @@ input[type=text]:focus {
|
|
|
1053
1272
|
background: #2d3148;
|
|
1054
1273
|
}
|
|
1055
1274
|
|
|
1056
|
-
.
|
|
1057
|
-
|
|
1058
|
-
border-color: #2d3148;
|
|
1059
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
|
|
1275
|
+
.preview-panel {
|
|
1276
|
+
border-top-color: #2d3148;
|
|
1060
1277
|
}
|
|
1061
1278
|
|
|
1062
|
-
.
|
|
1063
|
-
|
|
1279
|
+
.preview-panel embed,
|
|
1280
|
+
.preview-panel iframe {
|
|
1281
|
+
background: #252836;
|
|
1064
1282
|
}
|
|
1065
1283
|
|
|
1066
|
-
.
|
|
1067
|
-
|
|
1284
|
+
.preview-panel pre {
|
|
1285
|
+
background: #0f1117;
|
|
1286
|
+
border-color: #2d3148;
|
|
1287
|
+
color: #e5e7eb;
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
.preview-truncated,
|
|
1291
|
+
.preview-error,
|
|
1292
|
+
.preview-loading {
|
|
1293
|
+
color: #6b7280;
|
|
1068
1294
|
}
|
|
1069
1295
|
|
|
1070
1296
|
.markdown-body {
|
|
@@ -1085,37 +1311,42 @@ input[type=text]:focus {
|
|
|
1085
1311
|
color: #60a5fa;
|
|
1086
1312
|
}
|
|
1087
1313
|
|
|
1088
|
-
.
|
|
1089
|
-
background: #
|
|
1090
|
-
color: #
|
|
1314
|
+
.qr-card {
|
|
1315
|
+
background: #1a1d27;
|
|
1316
|
+
border-color: #2d3148;
|
|
1317
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
|
|
1091
1318
|
}
|
|
1092
1319
|
|
|
1093
|
-
.
|
|
1094
|
-
|
|
1095
|
-
color: #f87171;
|
|
1320
|
+
.qr-card .qr-label {
|
|
1321
|
+
color: #f3f4f6;
|
|
1096
1322
|
}
|
|
1097
1323
|
|
|
1098
|
-
.
|
|
1099
|
-
|
|
1324
|
+
.qr-card .qr-url {
|
|
1325
|
+
color: #9ca3af;
|
|
1100
1326
|
}
|
|
1101
1327
|
|
|
1102
|
-
.
|
|
1328
|
+
.undo-toast {
|
|
1103
1329
|
background: #374151;
|
|
1104
|
-
color: #f3f4f6;
|
|
1105
1330
|
}
|
|
1106
1331
|
|
|
1107
|
-
.
|
|
1108
|
-
|
|
1332
|
+
.load-more-btn {
|
|
1333
|
+
background: #1a1d27;
|
|
1334
|
+
color: #d1d5db;
|
|
1335
|
+
border-color: #2d3148;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
.load-more-btn:hover {
|
|
1339
|
+
background: #2d3148;
|
|
1109
1340
|
}
|
|
1110
1341
|
|
|
1111
|
-
|
|
1342
|
+
#uploadStatus {
|
|
1112
1343
|
background: #1a1d27 !important;
|
|
1344
|
+
color: #e5e7eb !important;
|
|
1113
1345
|
}
|
|
1114
1346
|
}
|
|
1115
1347
|
}
|
|
1116
1348
|
|
|
1117
1349
|
:root[data-theme="dark"] {
|
|
1118
|
-
|
|
1119
1350
|
body {
|
|
1120
1351
|
background: #0f1117;
|
|
1121
1352
|
}
|
|
@@ -1129,6 +1360,46 @@ input[type=text]:focus {
|
|
|
1129
1360
|
color: #f3f4f6;
|
|
1130
1361
|
}
|
|
1131
1362
|
|
|
1363
|
+
.logo {
|
|
1364
|
+
filter: invert(1) brightness(1.2);
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
.username-display {
|
|
1368
|
+
color: #d1d5db;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
.username-display:hover {
|
|
1372
|
+
color: #f3f4f6;
|
|
1373
|
+
border-bottom-color: #6b7280;
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
.online-count {
|
|
1377
|
+
color: #6b7280;
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
.link-btn {
|
|
1381
|
+
color: #9ca3af;
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
.link-btn:hover {
|
|
1385
|
+
color: #f3f4f6;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.theme-toggle:hover {
|
|
1389
|
+
background: #2d3148;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
.logout-btn {
|
|
1393
|
+
border-color: #2d3148;
|
|
1394
|
+
color: #9ca3af;
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
.logout-btn:hover {
|
|
1398
|
+
background: #2d1515;
|
|
1399
|
+
border-color: #7f1d1d;
|
|
1400
|
+
color: #f87171;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1132
1403
|
.search-wrapper input {
|
|
1133
1404
|
background: #252836;
|
|
1134
1405
|
border-color: #2d3148;
|
|
@@ -1148,18 +1419,6 @@ input[type=text]:focus {
|
|
|
1148
1419
|
color: #6b7280;
|
|
1149
1420
|
}
|
|
1150
1421
|
|
|
1151
|
-
.logo {
|
|
1152
|
-
filter: invert(1) brightness(1.2);
|
|
1153
|
-
}
|
|
1154
|
-
|
|
1155
|
-
.link-btn {
|
|
1156
|
-
color: #9ca3af;
|
|
1157
|
-
}
|
|
1158
|
-
|
|
1159
|
-
.link-btn:hover {
|
|
1160
|
-
color: #f3f4f6;
|
|
1161
|
-
}
|
|
1162
|
-
|
|
1163
1422
|
.channel-bar {
|
|
1164
1423
|
background: #1a1d27;
|
|
1165
1424
|
}
|
|
@@ -1186,10 +1445,6 @@ input[type=text]:focus {
|
|
|
1186
1445
|
color: #9ca3af;
|
|
1187
1446
|
}
|
|
1188
1447
|
|
|
1189
|
-
.header-right span {
|
|
1190
|
-
color: #f3f4f6;
|
|
1191
|
-
}
|
|
1192
|
-
|
|
1193
1448
|
.add-channel:hover {
|
|
1194
1449
|
background: #2d3148;
|
|
1195
1450
|
}
|
|
@@ -1226,6 +1481,7 @@ input[type=text]:focus {
|
|
|
1226
1481
|
|
|
1227
1482
|
.item {
|
|
1228
1483
|
background: #1a1d27;
|
|
1484
|
+
color: #e5e7eb;
|
|
1229
1485
|
}
|
|
1230
1486
|
|
|
1231
1487
|
.item:hover {
|
|
@@ -1236,29 +1492,35 @@ input[type=text]:focus {
|
|
|
1236
1492
|
color: #60a5fa;
|
|
1237
1493
|
}
|
|
1238
1494
|
|
|
1239
|
-
.
|
|
1240
|
-
color: #
|
|
1495
|
+
.left {
|
|
1496
|
+
color: #e5e7eb;
|
|
1241
1497
|
}
|
|
1242
1498
|
|
|
1243
|
-
.
|
|
1244
|
-
|
|
1499
|
+
.left.flash {
|
|
1500
|
+
background: #064e3b;
|
|
1245
1501
|
}
|
|
1246
1502
|
|
|
1247
|
-
.
|
|
1248
|
-
|
|
1249
|
-
|
|
1503
|
+
.left:hover::after {
|
|
1504
|
+
background: #374151;
|
|
1505
|
+
color: #f3f4f6;
|
|
1250
1506
|
}
|
|
1251
1507
|
|
|
1252
|
-
.
|
|
1253
|
-
|
|
1254
|
-
border-color: #2d3148;
|
|
1255
|
-
color: #e5e7eb;
|
|
1508
|
+
.meta {
|
|
1509
|
+
color: #6b7280;
|
|
1256
1510
|
}
|
|
1257
1511
|
|
|
1258
|
-
.
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1512
|
+
.empty-state {
|
|
1513
|
+
color: #4b5563;
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
.size-tag.warn {
|
|
1517
|
+
background: #422006;
|
|
1518
|
+
color: #fbbf24;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
.size-tag.danger-light {
|
|
1522
|
+
background: #2d1515;
|
|
1523
|
+
color: #f87171;
|
|
1262
1524
|
}
|
|
1263
1525
|
|
|
1264
1526
|
.icon-btn {
|
|
@@ -1336,18 +1598,25 @@ input[type=text]:focus {
|
|
|
1336
1598
|
background: #2d3148;
|
|
1337
1599
|
}
|
|
1338
1600
|
|
|
1339
|
-
.
|
|
1340
|
-
|
|
1341
|
-
border-color: #2d3148;
|
|
1342
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
|
|
1601
|
+
.preview-panel {
|
|
1602
|
+
border-top-color: #2d3148;
|
|
1343
1603
|
}
|
|
1344
1604
|
|
|
1345
|
-
.
|
|
1346
|
-
|
|
1605
|
+
.preview-panel embed,
|
|
1606
|
+
.preview-panel iframe {
|
|
1607
|
+
background: #252836;
|
|
1347
1608
|
}
|
|
1348
1609
|
|
|
1349
|
-
.
|
|
1350
|
-
|
|
1610
|
+
.preview-panel pre {
|
|
1611
|
+
background: #0f1117;
|
|
1612
|
+
border-color: #2d3148;
|
|
1613
|
+
color: #e5e7eb;
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
.preview-truncated,
|
|
1617
|
+
.preview-error,
|
|
1618
|
+
.preview-loading {
|
|
1619
|
+
color: #6b7280;
|
|
1351
1620
|
}
|
|
1352
1621
|
|
|
1353
1622
|
.markdown-body {
|
|
@@ -1368,106 +1637,36 @@ input[type=text]:focus {
|
|
|
1368
1637
|
color: #60a5fa;
|
|
1369
1638
|
}
|
|
1370
1639
|
|
|
1371
|
-
.
|
|
1372
|
-
background: #
|
|
1373
|
-
color: #
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
.size-tag.danger-light {
|
|
1377
|
-
background: #2d1515;
|
|
1378
|
-
color: #f87171;
|
|
1379
|
-
}
|
|
1380
|
-
|
|
1381
|
-
.left.flash {
|
|
1382
|
-
background: #064e3b;
|
|
1640
|
+
.qr-card {
|
|
1641
|
+
background: #1a1d27;
|
|
1642
|
+
border-color: #2d3148;
|
|
1643
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
|
|
1383
1644
|
}
|
|
1384
1645
|
|
|
1385
|
-
.
|
|
1386
|
-
background: #374151;
|
|
1646
|
+
.qr-card .qr-label {
|
|
1387
1647
|
color: #f3f4f6;
|
|
1388
1648
|
}
|
|
1389
1649
|
|
|
1390
|
-
.
|
|
1391
|
-
color: #
|
|
1650
|
+
.qr-card .qr-url {
|
|
1651
|
+
color: #9ca3af;
|
|
1392
1652
|
}
|
|
1393
1653
|
|
|
1394
|
-
.
|
|
1395
|
-
background: #
|
|
1654
|
+
.undo-toast {
|
|
1655
|
+
background: #374151;
|
|
1396
1656
|
}
|
|
1397
|
-
}
|
|
1398
|
-
|
|
1399
|
-
.undo-toast {
|
|
1400
|
-
position: fixed;
|
|
1401
|
-
bottom: 30px;
|
|
1402
|
-
left: 50%;
|
|
1403
|
-
transform: translateX(-50%) translateY(80px);
|
|
1404
|
-
background: #1f2937;
|
|
1405
|
-
color: #f3f4f6;
|
|
1406
|
-
padding: 12px 16px;
|
|
1407
|
-
border-radius: 10px;
|
|
1408
|
-
font-size: 13px;
|
|
1409
|
-
display: flex;
|
|
1410
|
-
align-items: center;
|
|
1411
|
-
gap: 12px;
|
|
1412
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
1413
|
-
z-index: 9999;
|
|
1414
|
-
opacity: 0;
|
|
1415
|
-
transition: transform 0.2s ease, opacity 0.2s ease;
|
|
1416
|
-
min-width: 220px;
|
|
1417
|
-
overflow: hidden;
|
|
1418
|
-
}
|
|
1419
|
-
|
|
1420
|
-
.undo-toast.show {
|
|
1421
|
-
transform: translateX(-50%) translateY(0);
|
|
1422
|
-
opacity: 1;
|
|
1423
|
-
}
|
|
1424
|
-
|
|
1425
|
-
.undo-toast #undoBtn {
|
|
1426
|
-
background: none;
|
|
1427
|
-
border: 1px solid #4b5563;
|
|
1428
|
-
color: #f3f4f6;
|
|
1429
|
-
padding: 4px 10px;
|
|
1430
|
-
border-radius: 6px;
|
|
1431
|
-
font-size: 12px;
|
|
1432
|
-
cursor: pointer;
|
|
1433
|
-
flex-shrink: 0;
|
|
1434
|
-
}
|
|
1435
|
-
|
|
1436
|
-
.undo-toast #undoBtn:hover {
|
|
1437
|
-
background: #374151;
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
|
-
.undo-progress {
|
|
1441
|
-
position: absolute;
|
|
1442
|
-
bottom: 0;
|
|
1443
|
-
left: 0;
|
|
1444
|
-
height: 3px;
|
|
1445
|
-
width: 100%;
|
|
1446
|
-
background: #4b5563;
|
|
1447
|
-
transform-origin: left;
|
|
1448
|
-
animation: none;
|
|
1449
|
-
}
|
|
1450
|
-
|
|
1451
|
-
.undo-progress.running {
|
|
1452
|
-
animation: drain 5s linear forwards;
|
|
1453
|
-
}
|
|
1454
1657
|
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1658
|
+
.load-more-btn {
|
|
1659
|
+
background: #1a1d27;
|
|
1660
|
+
color: #d1d5db;
|
|
1661
|
+
border-color: #2d3148;
|
|
1458
1662
|
}
|
|
1459
1663
|
|
|
1460
|
-
|
|
1461
|
-
|
|
1664
|
+
.load-more-btn:hover {
|
|
1665
|
+
background: #2d3148;
|
|
1462
1666
|
}
|
|
1463
|
-
}
|
|
1464
1667
|
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1668
|
+
#uploadStatus {
|
|
1669
|
+
background: #1a1d27 !important;
|
|
1670
|
+
color: #e5e7eb !important;
|
|
1468
1671
|
}
|
|
1469
|
-
}
|
|
1470
|
-
|
|
1471
|
-
:root[data-theme="dark"] .undo-toast {
|
|
1472
|
-
background: #374151;
|
|
1473
1672
|
}
|