@jjlmoya/utils-social 1.10.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-social",
3
- "version": "1.10.0",
3
+ "version": "1.13.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -18,7 +18,7 @@
18
18
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
19
19
  }
20
20
 
21
- :global(.theme-dark) .rdf-root {
21
+ .theme-dark .rdf-root {
22
22
  --bg: rgba(15, 23, 42, 0.6);
23
23
  --border: rgba(255, 255, 255, 0.08);
24
24
  --label: #94a3b8;
@@ -269,7 +269,7 @@
269
269
  accent-color: #8b5cf6;
270
270
  }
271
271
 
272
- :global(.theme-dark) .sri-container {
272
+ .theme-dark .sri-container {
273
273
  --bg: #1e1e21;
274
274
  --bg-sidebar: #161618;
275
275
  --bg-main: #1e1e21;
@@ -28,7 +28,7 @@
28
28
  margin: 2rem auto 5rem;
29
29
  }
30
30
 
31
- :global(.theme-dark) .svc-root {
31
+ .theme-dark .svc-root {
32
32
  --glass-bg: rgba(15, 23, 42, 0.85);
33
33
  --glass-border: rgba(255, 255, 255, 0.08);
34
34
  --glass-shadow: rgba(0, 0, 0, 0.6);
@@ -19,7 +19,7 @@
19
19
  --tfo-switch-off: #e2e8f0;
20
20
  }
21
21
 
22
- :global(.theme-dark) .tfo-root {
22
+ .theme-dark .tfo-root {
23
23
  --tfo-text: #f1f5f9;
24
24
  --tfo-muted: #94a3b8;
25
25
  --tfo-bg: #0f172a;
@@ -53,7 +53,7 @@
53
53
  overflow: hidden;
54
54
  }
55
55
 
56
- :global(.theme-dark) .tfo-container {
56
+ .theme-dark .tfo-container {
57
57
  border-color: rgba(255, 255, 255, 0.06);
58
58
  }
59
59
 
@@ -333,7 +333,7 @@
333
333
  color: var(--tfo-pink);
334
334
  }
335
335
 
336
- :global(.theme-dark) .tfo-action-btn:hover .tfo-btn-icon {
336
+ .theme-dark .tfo-action-btn:hover .tfo-btn-icon {
337
337
  background: rgba(253, 41, 123, 0.15);
338
338
  color: var(--tfo-pink);
339
339
  }
@@ -344,7 +344,7 @@
344
344
  color: var(--tfo-pink);
345
345
  }
346
346
 
347
- :global(.theme-dark) .tfo-action-btn.is-active {
347
+ .theme-dark .tfo-action-btn.is-active {
348
348
  background: rgba(253, 41, 123, 0.1);
349
349
  }
350
350
 
@@ -398,7 +398,7 @@
398
398
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
399
399
  }
400
400
 
401
- :global(.theme-dark) .tfo-analysis-col {
401
+ .theme-dark .tfo-analysis-col {
402
402
  border-color: rgba(255, 255, 255, 0.06);
403
403
  }
404
404
 
@@ -445,7 +445,7 @@
445
445
  overflow-wrap: break-word;
446
446
  }
447
447
 
448
- :global(.theme-dark) .tfo-alert {
448
+ .theme-dark .tfo-alert {
449
449
  border-bottom-color: rgba(255, 255, 255, 0.04);
450
450
  }
451
451
 
@@ -487,7 +487,7 @@
487
487
  border-radius: 40px;
488
488
  }
489
489
 
490
- :global(.theme-dark) .tfo-ai-loader {
490
+ .theme-dark .tfo-ai-loader {
491
491
  background: rgba(15, 23, 42, 0.85);
492
492
  }
493
493
 
@@ -22,7 +22,7 @@
22
22
  gap: 2rem;
23
23
  }
24
24
 
25
- :global(.theme-dark) .ytx-root {
25
+ .theme-dark .ytx-root {
26
26
  --bg: #0f172a;
27
27
  --bg-muted: #020617;
28
28
  --bg-img: #1e293b;
@@ -1,273 +1,523 @@
1
- :global(.comparison-container) {
2
- display: grid;
3
- grid-template-columns: 1fr 1fr;
4
- gap: 4px;
5
- background: #e2e8f0;
6
- border-radius: 32px;
7
- overflow: hidden;
8
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
9
- }
10
-
11
- :global(.theme-dark) :global(.comparison-container) {
12
- background: rgba(255, 255, 255, 0.05);
13
- }
14
-
15
- @media (max-width: 768px) {
16
- :global(.comparison-container) {
17
- grid-template-columns: 1fr;
18
- border-radius: 20px;
19
- gap: 8px;
20
- }
21
- }
22
-
23
- :global(.comparison-side) {
24
- position: relative;
25
- padding: 3rem 2rem;
26
- display: flex;
27
- flex-direction: column;
28
- align-items: center;
29
- min-height: 600px;
30
- transition: background 0.3s ease;
31
- }
32
-
33
- @media (max-width: 768px) {
34
- :global(.comparison-side) {
35
- padding: 2rem 1rem;
36
- min-height: auto;
37
- }
38
- }
39
-
40
- :global(.comparison-label) {
41
- position: absolute;
42
- top: 1.25rem;
43
- left: 1.25rem;
44
- background: rgba(0, 0, 0, 0.6);
45
- color: white;
46
- padding: 6px 12px;
47
- border-radius: 8px;
48
- font-size: 11px;
49
- font-weight: 900;
50
- z-index: 20;
51
- backdrop-filter: blur(8px);
52
- border: 1px solid rgba(255, 255, 255, 0.1);
53
- }
54
-
55
- @media (max-width: 768px) {
56
- :global(.comparison-label) {
57
- font-size: 10px;
58
- padding: 4px 8px;
59
- top: 0.75rem;
60
- left: 0.75rem;
61
- }
62
- }
63
-
64
- :global(.mockup-grid) {
65
- display: grid;
66
- gap: 3rem;
67
- width: 100%;
68
- }
69
-
70
- :global(.mockup-desktop .mockup-grid) {
71
- max-width: 520px;
72
- }
73
-
74
- :global(.mockup-mobile .mockup-grid) {
75
- max-width: 320px;
76
- }
77
-
78
- @media (max-width: 768px) {
79
- :global(.mockup-grid) { gap: 2rem; }
80
- :global(.mockup-desktop .mockup-grid),
81
- :global(.mockup-mobile .mockup-grid) { max-width: 100%; }
82
- }
83
-
84
- :global(.yt-card) {
85
- width: 100%;
86
- display: flex;
87
- flex-direction: column;
88
- gap: 1rem;
89
- animation: ytt-slide-up 0.4s ease-out backwards;
90
- }
91
-
92
- @media (max-width: 768px) {
93
- :global(.yt-card) {
94
- gap: 0.75rem;
95
- }
96
- }
97
-
98
- @keyframes ytt-slide-up {
99
- from {
100
- opacity: 0;
101
- transform: translateY(20px);
102
- }
103
-
104
- to {
105
- opacity: 1;
106
- transform: translateY(0);
107
- }
108
- }
109
-
110
- :global(.yt-thumbnail-wrapper) {
111
- position: relative;
112
- width: 100%;
113
- aspect-ratio: 16 / 9;
114
- border-radius: 16px;
115
- overflow: hidden;
116
- background: #e2e8f0;
117
- box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
118
- }
119
-
120
- :global(.yt-thumbnail-wrapper img) {
121
- width: 100%;
122
- height: 100%;
123
- object-fit: cover;
124
- }
125
-
126
- :global(.yt-duration) {
127
- position: absolute;
128
- bottom: 10px;
129
- right: 10px;
130
- background: rgba(0, 0, 0, 0.9);
131
- color: white;
132
- padding: 3px 6px;
133
- border-radius: 5px;
134
- font-size: 12px;
135
- font-weight: 600;
136
- }
137
-
138
- @media (max-width: 768px) {
139
- :global(.yt-duration) {
140
- font-size: 10px;
141
- padding: 2px 4px;
142
- bottom: 6px;
143
- right: 6px;
144
- }
145
- }
146
-
147
- :global(.yt-info-row) {
148
- display: flex;
149
- gap: 14px;
150
- }
151
-
152
- @media (max-width: 768px) {
153
- :global(.yt-info-row) {
154
- gap: 10px;
155
- }
156
- }
157
-
158
- :global(.yt-avatar) {
159
- width: 44px;
160
- height: 44px;
161
- border-radius: 50%;
162
- flex-shrink: 0;
163
- overflow: hidden;
164
- background: #e5e7eb;
165
- border: 1px solid rgba(0, 0, 0, 0.05);
166
- display: flex;
167
- align-items: center;
168
- justify-content: center;
169
- color: #94a3b8;
170
- }
171
-
172
- :global(.mockup-mobile .yt-avatar) {
173
- width: 36px;
174
- height: 36px;
175
- }
176
-
177
- :global(.yt-avatar img) {
178
- width: 100%;
179
- height: 100%;
180
- object-fit: cover;
181
- }
182
-
183
- :global(.yt-avatar svg) {
184
- width: 60%;
185
- height: 60%;
186
- }
187
-
188
- :global(.yt-text-meta) {
189
- display: flex;
190
- flex-direction: column;
191
- gap: 4px;
192
- min-width: 0;
193
- }
194
-
195
- :global(.yt-title) {
196
- font-weight: 700;
197
- margin: 0;
198
- line-height: 1.4;
199
- display: -webkit-box;
200
- -webkit-line-clamp: 2;
201
- -webkit-box-orient: vertical;
202
- overflow: hidden;
203
- color: inherit;
204
- }
205
-
206
- :global(.mockup-desktop .yt-title) { font-size: 1.1rem; }
207
- :global(.mockup-mobile .yt-title) { font-size: 0.9rem; }
208
-
209
- :global(.yt-channel), :global(.yt-views) {
210
- font-size: 0.85rem;
211
- margin: 0;
212
- font-weight: 500;
213
- }
214
-
215
- :global(.mockup-mobile .yt-channel), :global(.mockup-mobile .yt-views) {
216
- font-size: 0.75rem;
217
- }
218
-
219
- @media (max-width: 768px) {
220
- :global(.yt-channel), :global(.yt-views) { font-size: 0.75rem; }
221
- :global(.mockup-mobile .yt-channel), :global(.mockup-mobile .yt-views) { font-size: 0.65rem; }
222
- }
223
-
224
- :global(.light .yt-channel), :global(.light .yt-views) { color: #606060; }
225
- :global(.dark .yt-channel), :global(.dark .yt-views) { color: #aaa; }
226
-
227
- :global(.yt-mockup.light) {
228
- background: #f9f9f9;
229
- color: #030303;
230
- }
231
-
232
- :global(.yt-mockup.dark) {
233
- background: #0f0f0f;
234
- color: #f1f1f1;
235
- }
236
-
237
- :global(.gallery-item) {
238
- width: 60px;
239
- aspect-ratio: 16/9;
240
- border-radius: 6px;
241
- overflow: hidden;
242
- position: relative;
243
- border: 1px solid rgba(0, 0, 0, 0.1);
244
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
245
- }
246
-
247
- :global(.gallery-item img) {
248
- width: 100%;
249
- height: 100%;
250
- object-fit: cover;
251
- }
252
-
253
- :global(.btn-remove-thumb) {
254
- position: absolute;
255
- top: -4px;
256
- right: -4px;
257
- background: #ef4444;
258
- color: white;
259
- border: none;
260
- border-radius: 50%;
261
- width: 18px;
262
- height: 18px;
263
- display: flex;
264
- align-items: center;
265
- justify-content: center;
266
- font-size: 11px;
267
- cursor: pointer;
268
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
269
- opacity: 0;
270
- transition: opacity 0.2s;
271
- }
272
-
273
- :global(.gallery-item:hover .btn-remove-thumb) { opacity: 1; }
1
+ .ytt-root {
2
+ --yt-red: #f00;
3
+
4
+ max-width: 1400px;
5
+ margin: 0 auto;
6
+ }
7
+
8
+ .premium-card {
9
+ background: rgba(255, 255, 255, 0.8);
10
+ backdrop-filter: blur(20px);
11
+ -webkit-backdrop-filter: blur(20px);
12
+ border: 1px solid rgba(255, 255, 255, 0.4);
13
+ border-radius: 32px;
14
+ padding: 2rem;
15
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05);
16
+ }
17
+
18
+ @media (max-width: 768px) {
19
+ .premium-card {
20
+ padding: 1rem;
21
+ border-radius: 20px;
22
+ }
23
+ }
24
+
25
+ .theme-dark .ytt-root .premium-card {
26
+ background: rgba(15, 23, 42, 0.7);
27
+ border-color: rgba(255, 255, 255, 0.05);
28
+ }
29
+
30
+ .main-layout {
31
+ display: grid;
32
+ grid-template-columns: 320px 1fr;
33
+ gap: 2rem;
34
+ align-items: start;
35
+ }
36
+
37
+ @media (max-width: 1100px) { .main-layout { grid-template-columns: 1fr; } }
38
+
39
+ @media (max-width: 768px) { .main-layout { gap: 1rem; } }
40
+
41
+ .sidebar {
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 1.5rem;
45
+ position: sticky;
46
+ top: 2rem;
47
+ }
48
+
49
+ @media (max-width: 1100px) { .sidebar { position: static; } }
50
+
51
+ @media (max-width: 768px) { .sidebar { gap: 1rem; } }
52
+
53
+ .upload-group {
54
+ display: grid;
55
+ grid-template-columns: 1fr 1fr;
56
+ gap: 0.75rem;
57
+ }
58
+
59
+ @media (max-width: 768px) { .upload-group {
60
+ grid-template-columns: 1fr;
61
+ gap: 0.5rem;
62
+ } }
63
+
64
+ .drop-zone {
65
+ width: 100%;
66
+ height: 100px;
67
+ border: 2px dashed rgba(239, 68, 68, 0.15);
68
+ border-radius: 20px;
69
+ display: flex;
70
+ flex-direction: column;
71
+ align-items: center;
72
+ justify-content: center;
73
+ gap: 0.4rem;
74
+ cursor: pointer;
75
+ background: rgba(239, 68, 68, 0.02);
76
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
77
+ text-align: center;
78
+ padding: 0.5rem;
79
+ color: inherit;
80
+ }
81
+
82
+ @media (max-width: 768px) { .drop-zone {
83
+ height: 80px;
84
+ border-radius: 16px;
85
+ } }
86
+
87
+ .drop-zone:hover,
88
+ .drop-zone.hover {
89
+ border-color: var(--yt-red);
90
+ background: rgba(239, 68, 68, 0.06);
91
+ transform: translateY(-2px);
92
+ }
93
+
94
+ .drop-icon {
95
+ font-size: 1.6rem;
96
+ color: var(--yt-red);
97
+ }
98
+
99
+ .drop-text h3 {
100
+ margin: 0;
101
+ font-size: 0.8rem;
102
+ font-weight: 800;
103
+ }
104
+ .drop-text p {
105
+ margin: 0;
106
+ font-size: 0.6rem;
107
+ color: #94a3b8;
108
+ }
109
+
110
+ @media (max-width: 768px) {
111
+ .drop-text h3 { font-size: 0.7rem; }
112
+ .drop-text p { font-size: 0.55rem; }
113
+ .drop-icon { font-size: 1.2rem; }
114
+ }
115
+
116
+ .gallery-preview {
117
+ display: flex;
118
+ flex-wrap: wrap;
119
+ gap: 8px;
120
+ padding: 12px;
121
+ background: rgba(0, 0, 0, 0.03);
122
+ border: 1px solid rgba(0, 0, 0, 0.05);
123
+ border-radius: 16px;
124
+ min-height: 50px;
125
+ }
126
+
127
+ @media (max-width: 768px) { .gallery-preview {
128
+ gap: 6px;
129
+ padding: 8px;
130
+ border-radius: 12px;
131
+ } }
132
+
133
+ .theme-dark .ytt-root .gallery-preview {
134
+ background: rgba(255, 255, 255, 0.03);
135
+ border-color: rgba(255, 255, 255, 0.06);
136
+ }
137
+
138
+ .custom-settings {
139
+ display: flex;
140
+ flex-direction: column;
141
+ gap: 1rem;
142
+ padding: 1.25rem;
143
+ background: rgba(0, 0, 0, 0.03);
144
+ border-radius: 20px;
145
+ border: 1px solid rgba(0, 0, 0, 0.05);
146
+ }
147
+
148
+ @media (max-width: 768px) { .custom-settings {
149
+ padding: 1rem;
150
+ gap: 0.75rem;
151
+ border-radius: 16px;
152
+ } }
153
+
154
+ .theme-dark .ytt-root .custom-settings {
155
+ background: rgba(255, 255, 255, 0.03);
156
+ border-color: rgba(255, 255, 255, 0.06);
157
+ }
158
+
159
+ .settings-group label {
160
+ display: block;
161
+ font-size: 0.7rem;
162
+ font-weight: 800;
163
+ color: #94a3b8;
164
+ text-transform: uppercase;
165
+ letter-spacing: 0.05em;
166
+ margin-bottom: 0.3rem;
167
+ }
168
+
169
+ .settings-group input {
170
+ width: 100%;
171
+ padding: 0.8rem;
172
+ border-radius: 12px;
173
+ border: 1px solid rgba(0, 0, 0, 0.1);
174
+ font-size: 0.9rem;
175
+ background: white;
176
+ color: #1e293b;
177
+ outline: none;
178
+ transition: all 0.2s;
179
+ box-sizing: border-box;
180
+ }
181
+
182
+ @media (max-width: 768px) {
183
+ .settings-group label { font-size: 0.65rem; }
184
+ .settings-group input {
185
+ padding: 0.7rem;
186
+ font-size: 0.85rem;
187
+ border-radius: 10px;
188
+ }
189
+ }
190
+
191
+ .theme-dark .ytt-root .settings-group input {
192
+ background: rgba(15, 23, 42, 0.5);
193
+ border-color: rgba(255, 255, 255, 0.1);
194
+ color: #f1f5f9;
195
+ }
196
+
197
+ .settings-group input:focus {
198
+ border-color: var(--yt-red);
199
+ box-shadow: 0 0 0 4px rgba(255, 0, 0, 0.05);
200
+ }
201
+
202
+ .tester-controls {
203
+ display: grid;
204
+ grid-template-columns: repeat(2, 1fr);
205
+ gap: 0.75rem;
206
+ }
207
+
208
+ @media (max-width: 768px) { .tester-controls {
209
+ grid-template-columns: 1fr;
210
+ gap: 0.5rem;
211
+ } }
212
+
213
+ .control-btn {
214
+ border: none;
215
+ background: rgba(0, 0, 0, 0.05);
216
+ padding: 1rem;
217
+ border-radius: 14px;
218
+ cursor: pointer;
219
+ font-weight: 700;
220
+ font-size: 0.8rem;
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ gap: 0.5rem;
225
+ color: #64748b;
226
+ transition: all 0.2s;
227
+ }
228
+
229
+ @media (max-width: 768px) { .control-btn {
230
+ padding: 0.8rem;
231
+ font-size: 0.75rem;
232
+ border-radius: 12px;
233
+ } }
234
+
235
+ .control-btn:hover {
236
+ background: rgba(0, 0, 0, 0.08);
237
+ color: #1e293b;
238
+ }
239
+
240
+ .theme-dark .ytt-root .control-btn {
241
+ background: rgba(255, 255, 255, 0.05);
242
+ color: #94a3b8;
243
+ }
244
+
245
+ .theme-dark .ytt-root .control-btn:hover { color: #f1f5f9; }
246
+
247
+ .control-btn.active {
248
+ background: var(--yt-red);
249
+ color: white;
250
+ box-shadow: 0 8px 20px rgba(255, 0, 0, 0.15);
251
+ }
252
+
253
+ .control-btn--reset {
254
+ grid-column: span 2;
255
+ color: #ef4444;
256
+ border: 1px solid rgba(239, 68, 68, 0.2);
257
+ }
258
+
259
+ @media (max-width: 768px) { .control-btn--reset { grid-column: span 1; } }
260
+
261
+ .preview-area { min-width: 0; }
262
+
263
+ .comparison-container {
264
+ display: grid;
265
+ grid-template-columns: 1fr 1fr;
266
+ gap: 4px;
267
+ background: #e2e8f0;
268
+ border-radius: 32px;
269
+ overflow: hidden;
270
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
271
+ }
272
+
273
+ .theme-dark .comparison-container {
274
+ background: rgba(255, 255, 255, 0.05);
275
+ }
276
+
277
+ @media (max-width: 768px) {
278
+ .comparison-container {
279
+ grid-template-columns: 1fr;
280
+ border-radius: 20px;
281
+ gap: 8px;
282
+ }
283
+ }
284
+
285
+ .comparison-side {
286
+ position: relative;
287
+ padding: 3rem 2rem;
288
+ display: flex;
289
+ flex-direction: column;
290
+ align-items: center;
291
+ min-height: 600px;
292
+ transition: background 0.3s ease;
293
+ }
294
+
295
+ @media (max-width: 768px) {
296
+ .comparison-side {
297
+ padding: 2rem 1rem;
298
+ min-height: auto;
299
+ }
300
+ }
301
+
302
+ .comparison-label {
303
+ position: absolute;
304
+ top: 1.25rem;
305
+ left: 1.25rem;
306
+ background: rgba(0, 0, 0, 0.6);
307
+ color: white;
308
+ padding: 6px 12px;
309
+ border-radius: 8px;
310
+ font-size: 11px;
311
+ font-weight: 900;
312
+ z-index: 20;
313
+ backdrop-filter: blur(8px);
314
+ border: 1px solid rgba(255, 255, 255, 0.1);
315
+ }
316
+
317
+ @media (max-width: 768px) {
318
+ .comparison-label {
319
+ font-size: 10px;
320
+ padding: 4px 8px;
321
+ top: 0.75rem;
322
+ left: 0.75rem;
323
+ }
324
+ }
325
+
326
+ .mockup-grid {
327
+ display: grid;
328
+ gap: 3rem;
329
+ width: 100%;
330
+ }
331
+
332
+ .mockup-desktop .mockup-grid { max-width: 520px; }
333
+ .mockup-mobile .mockup-grid { max-width: 320px; }
334
+
335
+ @media (max-width: 768px) {
336
+ .mockup-grid { gap: 2rem; }
337
+ .mockup-desktop .mockup-grid,
338
+ .mockup-mobile .mockup-grid { max-width: 100%; }
339
+ }
340
+
341
+ .yt-card {
342
+ width: 100%;
343
+ display: flex;
344
+ flex-direction: column;
345
+ gap: 1rem;
346
+ animation: ytt-slide-up 0.4s ease-out backwards;
347
+ }
348
+
349
+ @media (max-width: 768px) {
350
+ .yt-card { gap: 0.75rem; }
351
+ }
352
+
353
+ @keyframes ytt-slide-up {
354
+ from {
355
+ opacity: 0;
356
+ transform: translateY(20px);
357
+ }
358
+ to {
359
+ opacity: 1;
360
+ transform: translateY(0);
361
+ }
362
+ }
363
+
364
+ .yt-thumbnail-wrapper {
365
+ position: relative;
366
+ width: 100%;
367
+ aspect-ratio: 16 / 9;
368
+ border-radius: 16px;
369
+ overflow: hidden;
370
+ background: #e2e8f0;
371
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
372
+ }
373
+
374
+ .yt-thumbnail-wrapper img {
375
+ width: 100%;
376
+ height: 100%;
377
+ object-fit: cover;
378
+ }
379
+
380
+ .yt-duration {
381
+ position: absolute;
382
+ bottom: 10px;
383
+ right: 10px;
384
+ background: rgba(0, 0, 0, 0.9);
385
+ color: white;
386
+ padding: 3px 6px;
387
+ border-radius: 5px;
388
+ font-size: 12px;
389
+ font-weight: 600;
390
+ }
391
+
392
+ @media (max-width: 768px) {
393
+ .yt-duration {
394
+ font-size: 10px;
395
+ padding: 2px 4px;
396
+ bottom: 6px;
397
+ right: 6px;
398
+ }
399
+ }
400
+
401
+ .yt-info-row {
402
+ display: flex;
403
+ gap: 14px;
404
+ }
405
+
406
+ @media (max-width: 768px) {
407
+ .yt-info-row { gap: 10px; }
408
+ }
409
+
410
+ .yt-avatar {
411
+ width: 44px;
412
+ height: 44px;
413
+ border-radius: 50%;
414
+ flex-shrink: 0;
415
+ overflow: hidden;
416
+ background: #e5e7eb;
417
+ border: 1px solid rgba(0, 0, 0, 0.05);
418
+ display: flex;
419
+ align-items: center;
420
+ justify-content: center;
421
+ color: #94a3b8;
422
+ }
423
+
424
+ .mockup-mobile .yt-avatar {
425
+ width: 36px;
426
+ height: 36px;
427
+ }
428
+
429
+ .yt-avatar img {
430
+ width: 100%;
431
+ height: 100%;
432
+ object-fit: cover;
433
+ }
434
+ .yt-avatar svg {
435
+ width: 60%;
436
+ height: 60%;
437
+ }
438
+
439
+ .yt-text-meta {
440
+ display: flex;
441
+ flex-direction: column;
442
+ gap: 4px;
443
+ min-width: 0;
444
+ }
445
+
446
+ .yt-title {
447
+ font-weight: 700;
448
+ margin: 0;
449
+ line-height: 1.4;
450
+ display: -webkit-box;
451
+ -webkit-line-clamp: 2;
452
+ -webkit-box-orient: vertical;
453
+ overflow: hidden;
454
+ color: inherit;
455
+ }
456
+
457
+ .mockup-desktop .yt-title { font-size: 1.1rem; }
458
+ .mockup-mobile .yt-title { font-size: 0.9rem; }
459
+
460
+ .yt-channel,
461
+ .yt-views {
462
+ font-size: 0.85rem;
463
+ margin: 0;
464
+ font-weight: 500;
465
+ }
466
+
467
+ .mockup-mobile .yt-channel,
468
+ .mockup-mobile .yt-views { font-size: 0.75rem; }
469
+
470
+ @media (max-width: 768px) {
471
+ .yt-channel, .yt-views { font-size: 0.75rem; }
472
+ .mockup-mobile .yt-channel, .mockup-mobile .yt-views { font-size: 0.65rem; }
473
+ }
474
+
475
+ .light .yt-channel, .light .yt-views { color: #606060; }
476
+ .dark .yt-channel, .dark .yt-views { color: #aaa; }
477
+
478
+ .yt-mockup.light {
479
+ background: #f9f9f9;
480
+ color: #030303;
481
+ }
482
+ .yt-mockup.dark {
483
+ background: #0f0f0f;
484
+ color: #f1f1f1;
485
+ }
486
+
487
+ .gallery-item {
488
+ width: 60px;
489
+ aspect-ratio: 16/9;
490
+ border-radius: 6px;
491
+ overflow: hidden;
492
+ position: relative;
493
+ border: 1px solid rgba(0, 0, 0, 0.1);
494
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
495
+ }
496
+
497
+ .gallery-item img {
498
+ width: 100%;
499
+ height: 100%;
500
+ object-fit: cover;
501
+ }
502
+
503
+ .btn-remove-thumb {
504
+ position: absolute;
505
+ top: -4px;
506
+ right: -4px;
507
+ background: #ef4444;
508
+ color: white;
509
+ border: none;
510
+ border-radius: 50%;
511
+ width: 18px;
512
+ height: 18px;
513
+ display: flex;
514
+ align-items: center;
515
+ justify-content: center;
516
+ font-size: 11px;
517
+ cursor: pointer;
518
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
519
+ opacity: 0;
520
+ transition: opacity 0.2s;
521
+ }
522
+
523
+ .gallery-item:hover .btn-remove-thumb { opacity: 1; }