myetv-player 1.1.1 → 1.1.3
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/build.js +9 -3
- package/css/myetv-player.css +726 -11937
- package/css/myetv-player.min.css +1 -1
- package/dist/myetv-player.js +251 -131
- package/dist/myetv-player.min.js +5362 -5720
- package/package.json +3 -1
- package/plugins/youtube/myetv-player-youtube-plugin.js +54 -6
- package/scss/_controls.scss +120 -317
- package/scss/_menus.scss +117 -4023
- package/scss/_progress-bar.scss +168 -2052
- package/scss/_title-overlay.scss +10 -2239
- package/scss/_video.scss +62 -2167
- package/scss/_volume.scss +25 -1846
- package/src/controls.js +7 -7
- package/src/core.js +66 -49
- package/src/events.js +5 -0
- package/src/subtitles.js +173 -75
package/scss/_progress-bar.scss
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// ===================================
|
|
1
|
+
// ===================================
|
|
2
2
|
// PROGRESS BAR
|
|
3
3
|
// ===================================
|
|
4
4
|
|
|
@@ -51,11 +51,24 @@
|
|
|
51
51
|
height: var(--player-progress-handle-size);
|
|
52
52
|
background: var(--player-primary-color);
|
|
53
53
|
border-radius: 50%;
|
|
54
|
-
opacity:
|
|
54
|
+
opacity: 1;
|
|
55
55
|
transition: opacity var(--player-transition-fast);
|
|
56
56
|
z-index: 2;
|
|
57
57
|
left: 0%;
|
|
58
58
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
59
|
+
pointer-events: all;
|
|
60
|
+
touch-action: none;
|
|
61
|
+
/* Larger invisible touch area */
|
|
62
|
+
&::before {
|
|
63
|
+
content: '';
|
|
64
|
+
position: absolute;
|
|
65
|
+
top: 50%;
|
|
66
|
+
left: 50%;
|
|
67
|
+
transform: translate(-50%, -50%);
|
|
68
|
+
width: 44px;
|
|
69
|
+
height: 44px;
|
|
70
|
+
border-radius: 50%;
|
|
71
|
+
}
|
|
59
72
|
}
|
|
60
73
|
|
|
61
74
|
.progress-container:hover .progress-handle {
|
|
@@ -66,8 +79,6 @@
|
|
|
66
79
|
background: var(--player-primary-hover);
|
|
67
80
|
}
|
|
68
81
|
|
|
69
|
-
|
|
70
|
-
|
|
71
82
|
/* TOOLTIP SEEK BAR */
|
|
72
83
|
.seek-tooltip {
|
|
73
84
|
position: absolute;
|
|
@@ -91,2113 +102,218 @@
|
|
|
91
102
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
92
103
|
}
|
|
93
104
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
.seek-tooltip.visible {
|
|
108
|
-
opacity: 1;
|
|
109
|
-
visibility: visible;
|
|
110
|
-
transform: translateX(-50%) translateY(-4px);
|
|
111
|
-
}
|
|
105
|
+
.seek-tooltip::after {
|
|
106
|
+
content: '';
|
|
107
|
+
position: absolute;
|
|
108
|
+
top: 100%;
|
|
109
|
+
left: 50%;
|
|
110
|
+
transform: translateX(-50%);
|
|
111
|
+
width: 0;
|
|
112
|
+
height: 0;
|
|
113
|
+
border-left: 5px solid transparent;
|
|
114
|
+
border-right: 5px solid transparent;
|
|
115
|
+
border-top: 5px solid rgba(0, 0, 0, 0.9);
|
|
116
|
+
}
|
|
112
117
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
align-items: center;
|
|
118
|
-
width: 100%;
|
|
119
|
-
min-height: 44px !important;
|
|
120
|
-
flex-shrink: 0;
|
|
118
|
+
.seek-tooltip.visible {
|
|
119
|
+
opacity: 1;
|
|
120
|
+
visibility: visible;
|
|
121
|
+
transform: translateX(-50%) translateY(-4px);
|
|
121
122
|
}
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
124
|
+
/* CHAPTER MARKERS SYSTEM */
|
|
125
|
+
.chapter-markers-container {
|
|
126
|
+
position: absolute;
|
|
127
|
+
top: 0;
|
|
128
|
+
left: 0;
|
|
129
|
+
width: 100%;
|
|
130
|
+
height: 100%;
|
|
131
|
+
pointer-events: none;
|
|
132
|
+
z-index: 3;
|
|
131
133
|
}
|
|
132
134
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
.chapter-marker {
|
|
136
|
+
position: absolute;
|
|
137
|
+
top: 0;
|
|
138
|
+
height: 100%;
|
|
139
|
+
width: 3px;
|
|
140
|
+
background: var(--player-primary-color);
|
|
141
|
+
opacity: 0.7;
|
|
138
142
|
cursor: pointer;
|
|
139
|
-
|
|
140
|
-
border-radius: 6px;
|
|
141
|
-
display: flex;
|
|
142
|
-
align-items: center;
|
|
143
|
-
gap: 5px;
|
|
143
|
+
pointer-events: auto;
|
|
144
144
|
transition: all var(--player-transition-fast);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
position: relative;
|
|
148
|
-
/* IMPROVED: Allow buttons to shrink when necessary */
|
|
149
|
-
flex-shrink: 1;
|
|
150
|
-
min-width: 0;
|
|
151
|
-
white-space: nowrap;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
.control-btn:hover {
|
|
155
|
-
background: var(--player-button-hover);
|
|
156
|
-
transform: scale(1.05);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.control-btn:active {
|
|
160
|
-
transform: scale(0.95);
|
|
161
|
-
background: var(--player-button-active);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/* SPECIFIC SUBTITLES BUTTON */
|
|
165
|
-
.subtitles-btn {
|
|
166
|
-
position: relative;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
.subtitles-btn.active {
|
|
170
|
-
background: var(--player-button-active);
|
|
171
|
-
color: var(--player-primary-color);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
.subtitles-btn.active::after {
|
|
175
|
-
content: '';
|
|
176
|
-
position: absolute;
|
|
177
|
-
bottom: 2px;
|
|
178
|
-
left: 50%;
|
|
179
|
-
transform: translateX(-50%);
|
|
180
|
-
width: 20px;
|
|
181
|
-
height: 2px;
|
|
182
|
-
background: var(--player-primary-color);
|
|
183
|
-
border-radius: 1px;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/* QUALITY BUTTON WITH DUAL DISPLAY */
|
|
187
|
-
.quality-btn {
|
|
188
|
-
min-height: 36px;
|
|
189
|
-
padding: 6px 8px;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.quality-btn-text {
|
|
193
|
-
display: flex;
|
|
194
|
-
flex-direction: column;
|
|
195
|
-
align-items: center;
|
|
196
|
-
line-height: 1;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
.selected-quality {
|
|
200
|
-
font-size: 14px;
|
|
201
|
-
font-weight: 500;
|
|
202
|
-
color: var(--player-button-color);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
.current-quality {
|
|
206
|
-
font-size: 10px;
|
|
207
|
-
font-weight: 400;
|
|
208
|
-
color: var(--player-text-secondary);
|
|
209
|
-
opacity: 0.8;
|
|
210
|
-
margin-top: 2px;
|
|
211
|
-
line-height: 1;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/* ICONS */
|
|
215
|
-
.icon {
|
|
216
|
-
width: var(--player-icon-size);
|
|
217
|
-
height: var(--player-icon-size);
|
|
218
|
-
display: flex;
|
|
219
|
-
align-items: center;
|
|
220
|
-
justify-content: center;
|
|
221
|
-
font-size: 16px;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.hidden {
|
|
225
|
-
display: none !important;
|
|
145
|
+
border-radius: 2px;
|
|
146
|
+
transform: translateX(-50%);
|
|
226
147
|
}
|
|
227
148
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
/* Allow volume container to shrink gradually */
|
|
235
|
-
flex-shrink: 2;
|
|
236
|
-
min-width: 0;
|
|
149
|
+
.chapter-marker:hover {
|
|
150
|
+
opacity: 1;
|
|
151
|
+
width: 4px;
|
|
152
|
+
height: 120%;
|
|
153
|
+
top: -10%;
|
|
154
|
+
box-shadow: 0 0 8px var(--player-primary-color);
|
|
237
155
|
}
|
|
238
156
|
|
|
239
|
-
.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
border-radius: calc(var(--player-volume-height) / 2);
|
|
244
|
-
outline: none;
|
|
245
|
-
cursor: pointer;
|
|
246
|
-
-webkit-appearance: none;
|
|
247
|
-
transition: all var(--player-transition-fast);
|
|
157
|
+
.chapter-marker.active {
|
|
158
|
+
background: var(--player-primary-hover);
|
|
159
|
+
opacity: 1;
|
|
160
|
+
width: 4px;
|
|
248
161
|
}
|
|
249
162
|
|
|
250
|
-
.
|
|
163
|
+
.chapter-tooltip {
|
|
251
164
|
position: absolute;
|
|
252
|
-
bottom:
|
|
253
|
-
transition: opacity 0.15s ease, transform 0.15s ease;
|
|
165
|
+
bottom: 100%;
|
|
254
166
|
left: 0;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
padding:
|
|
259
|
-
|
|
260
|
-
font-size: 12px;
|
|
261
|
-
font-weight: 500;
|
|
262
|
-
white-space: nowrap;
|
|
167
|
+
background: rgba(0, 0, 0, 0.95);
|
|
168
|
+
backdrop-filter: blur(10px);
|
|
169
|
+
border-radius: 8px;
|
|
170
|
+
padding: 0;
|
|
171
|
+
margin-bottom: 12px;
|
|
263
172
|
opacity: 0;
|
|
264
173
|
visibility: hidden;
|
|
174
|
+
transition: all 0.2s ease;
|
|
175
|
+
transform: translateX(-50%) translateY(-8px);
|
|
265
176
|
z-index: 1000;
|
|
266
177
|
box-shadow: var(--player-shadow-tooltip);
|
|
178
|
+
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
179
|
+
min-width: 200px;
|
|
180
|
+
max-width: 300px;
|
|
181
|
+
overflow: hidden;
|
|
267
182
|
pointer-events: none;
|
|
268
|
-
backdrop-filter: blur(8px);
|
|
269
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
.volume-tooltip::after {
|
|
273
|
-
content: '';
|
|
274
|
-
position: absolute;
|
|
275
|
-
top: 100%;
|
|
276
|
-
left: 50%;
|
|
277
|
-
transform: translateX(-50%);
|
|
278
|
-
width: 0;
|
|
279
|
-
height: 0;
|
|
280
|
-
border-left: 6px solid transparent;
|
|
281
|
-
border-right: 6px solid transparent;
|
|
282
|
-
border-top: 6px solid rgba(0, 0, 0, 0.9);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
.volume-container:hover .volume-tooltip,
|
|
286
|
-
.volume-tooltip.visible {
|
|
287
|
-
opacity: 1;
|
|
288
|
-
visibility: visible;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
.volume-slider::-webkit-slider-thumb {
|
|
292
|
-
-webkit-appearance: none;
|
|
293
|
-
width: var(--player-volume-handle-size);
|
|
294
|
-
height: var(--player-volume-handle-size);
|
|
295
|
-
border-radius: 50%;
|
|
296
|
-
background: var(--player-primary-dark);
|
|
297
|
-
cursor: pointer;
|
|
298
|
-
transition: all var(--player-transition-fast);
|
|
299
|
-
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
|
|
300
|
-
margin-top: calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2);
|
|
301
|
-
transform: translateY(0);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
.volume-slider::-webkit-slider-thumb:hover {
|
|
305
|
-
transform: translateY(0) scale(1.2);
|
|
306
|
-
background: var(--player-primary-color);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
.volume-slider::-moz-range-thumb {
|
|
310
|
-
width: var(--player-volume-handle-size);
|
|
311
|
-
height: var(--player-volume-handle-size);
|
|
312
|
-
border-radius: 50%;
|
|
313
|
-
background: var(--player-primary-dark);
|
|
314
|
-
cursor: pointer;
|
|
315
|
-
border: none;
|
|
316
|
-
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
|
|
317
|
-
transition: all var(--player-transition-fast);
|
|
318
|
-
margin-top: 0;
|
|
319
|
-
transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2));
|
|
320
183
|
}
|
|
321
184
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
border-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
border: none;
|
|
185
|
+
.chapter-tooltip::after {
|
|
186
|
+
content: '';
|
|
187
|
+
position: absolute;
|
|
188
|
+
top: 100%;
|
|
189
|
+
left: 50%;
|
|
190
|
+
transform: translateX(-50%);
|
|
191
|
+
width: 0;
|
|
192
|
+
height: 0;
|
|
193
|
+
border-left: 6px solid transparent;
|
|
194
|
+
border-right: 6px solid transparent;
|
|
195
|
+
border-top: 6px solid rgba(0, 0, 0, 0.95);
|
|
334
196
|
}
|
|
335
197
|
|
|
336
|
-
.
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
198
|
+
.chapter-tooltip-image {
|
|
199
|
+
width: 100%;
|
|
200
|
+
height: 150px;
|
|
201
|
+
background-size: cover;
|
|
202
|
+
background-position: center;
|
|
203
|
+
background-repeat: no-repeat;
|
|
204
|
+
display: none;
|
|
205
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
343
206
|
}
|
|
344
207
|
|
|
345
|
-
|
|
346
|
-
|
|
208
|
+
.chapter-tooltip-title {
|
|
209
|
+
padding: 10px 12px 6px;
|
|
347
210
|
color: var(--player-text-color);
|
|
348
211
|
font-size: 14px;
|
|
349
|
-
font-weight:
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
gap: 5px;
|
|
353
|
-
font-variant-numeric: tabular-nums;
|
|
354
|
-
/* Allow time display to shrink on very small screens */
|
|
355
|
-
flex-shrink: 2;
|
|
356
|
-
min-width: 0;
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
/* CONTROL MENUS */
|
|
360
|
-
.speed-control,
|
|
361
|
-
.quality-control,
|
|
362
|
-
.subtitles-control {
|
|
363
|
-
position: relative;
|
|
212
|
+
font-weight: 600;
|
|
213
|
+
line-height: 1.3;
|
|
214
|
+
word-wrap: break-word;
|
|
364
215
|
}
|
|
365
216
|
|
|
366
|
-
.
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
background: var(--player-bg-menu);
|
|
373
|
-
backdrop-filter: blur(10px);
|
|
374
|
-
border-radius: 8px;
|
|
375
|
-
padding: 8px 0;
|
|
376
|
-
margin-bottom: 10px;
|
|
377
|
-
opacity: 0;
|
|
378
|
-
visibility: hidden;
|
|
379
|
-
transition: all var(--player-transition-fast);
|
|
380
|
-
min-width: 140px;
|
|
381
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
382
|
-
z-index: 100;
|
|
383
|
-
box-shadow: var(--player-shadow-menu);
|
|
217
|
+
.chapter-tooltip-time {
|
|
218
|
+
padding: 0 12px 10px;
|
|
219
|
+
color: var(--player-text-secondary);
|
|
220
|
+
font-size: 12px;
|
|
221
|
+
font-weight: 400;
|
|
222
|
+
font-variant-numeric: tabular-nums;
|
|
384
223
|
}
|
|
385
224
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
.subtitles-control:hover .subtitles-menu,
|
|
391
|
-
.subtitles-menu:hover {
|
|
392
|
-
opacity: 1;
|
|
393
|
-
visibility: visible;
|
|
394
|
-
transform: translateY(-4px);
|
|
395
|
-
}
|
|
225
|
+
/* ===================================
|
|
226
|
+
SEEK HANDLE SHAPES
|
|
227
|
+
Available: none, circle, square, diamond, arrow, triangle, heart, star
|
|
228
|
+
=================================== */
|
|
396
229
|
|
|
397
|
-
|
|
398
|
-
.
|
|
399
|
-
|
|
400
|
-
padding: 8px 16px;
|
|
401
|
-
color: var(--player-text-color);
|
|
402
|
-
cursor: pointer;
|
|
403
|
-
transition: all var(--player-transition-fast);
|
|
404
|
-
font-size: 14px;
|
|
405
|
-
display: flex;
|
|
406
|
-
align-items: center;
|
|
407
|
-
justify-content: space-between;
|
|
230
|
+
/* Default shape: circle (already defined above) */
|
|
231
|
+
.progress-handle {
|
|
232
|
+
/* Base styles already defined */
|
|
408
233
|
}
|
|
409
234
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
.subtitles-option:hover {
|
|
413
|
-
background: rgba(255, 255, 255, 0.1);
|
|
414
|
-
color: var(--player-primary-color);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.speed-option.active,
|
|
418
|
-
.quality-option.active,
|
|
419
|
-
.subtitles-option.active {
|
|
420
|
-
color: var(--player-primary-color);
|
|
421
|
-
font-weight: 600;
|
|
422
|
-
background: rgba(255, 255, 255, 0.05);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
/* DUAL QUALITY INDICATORS */
|
|
426
|
-
.quality-option.selected {
|
|
427
|
-
color: var(--player-primary-color);
|
|
428
|
-
font-weight: 600;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
.quality-option.selected::after {
|
|
432
|
-
content: 'Selected';
|
|
433
|
-
font-size: 12px;
|
|
434
|
-
color: var(--player-primary-color);
|
|
435
|
-
font-weight: 400;
|
|
436
|
-
margin-left: 8px;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
.quality-option.playing {
|
|
440
|
-
background: rgba(255, 255, 255, 0.05);
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
.quality-option.playing::after {
|
|
444
|
-
content: 'Playing';
|
|
445
|
-
font-size: 12px;
|
|
446
|
-
color: #4CAF50; /* Green for playing */
|
|
447
|
-
font-weight: 400;
|
|
448
|
-
margin-left: 8px;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
.quality-option.selected.playing::after {
|
|
452
|
-
content: 'Active';
|
|
453
|
-
font-size: 12px;
|
|
454
|
-
color: var(--player-primary-color);
|
|
455
|
-
font-weight: 500;
|
|
456
|
-
margin-left: 8px;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
.subtitles-option.active::after {
|
|
460
|
-
content: '✓';
|
|
461
|
-
font-size: 12px;
|
|
462
|
-
color: var(--player-primary-color);
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
/* CUSTOM SUBTITLES STYLING */
|
|
466
|
-
.video-player::cue {
|
|
467
|
-
background: rgba(0, 0, 0, 0.8);
|
|
468
|
-
color: white;
|
|
469
|
-
font-size: 18px;
|
|
470
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
471
|
-
font-weight: 500;
|
|
472
|
-
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
|
|
473
|
-
padding: 8px 12px;
|
|
474
|
-
border-radius: 6px;
|
|
475
|
-
line-height: 1.4;
|
|
235
|
+
.progress-handle-circle {
|
|
236
|
+
border-radius: 50%;
|
|
476
237
|
}
|
|
477
238
|
|
|
478
|
-
.
|
|
479
|
-
|
|
480
|
-
color: black;
|
|
239
|
+
.progress-handle-square {
|
|
240
|
+
border-radius: 2px;
|
|
481
241
|
}
|
|
482
242
|
|
|
483
|
-
.
|
|
484
|
-
|
|
243
|
+
.progress-handle-diamond {
|
|
244
|
+
border-radius: 2px;
|
|
245
|
+
transform: translate(-50%, -50%) rotate(45deg);
|
|
485
246
|
}
|
|
486
247
|
|
|
487
|
-
.
|
|
488
|
-
|
|
248
|
+
.progress-handle-arrow {
|
|
249
|
+
border-radius: 0;
|
|
250
|
+
clip-path: polygon(0% 50%, 60% 0%, 60% 35%, 100% 35%, 100% 65%, 60% 65%, 60% 100%);
|
|
489
251
|
}
|
|
490
252
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
max-width: 120px; /* maintain aspect ratio */
|
|
495
|
-
object-fit: contain; /* prevent distortion */
|
|
496
|
-
margin-right: 10px; /* spacing from buttons to the right */
|
|
497
|
-
pointer-events: auto; /* allow clicks for links */
|
|
498
|
-
opacity: 0.8; /* slightly transparent */
|
|
499
|
-
transition: opacity var(--player-transition-fast);
|
|
500
|
-
order: -1; /* force logo to appear first */
|
|
501
|
-
flex-shrink: 1; /* Allow brand logo to shrink */
|
|
253
|
+
.progress-handle-triangle {
|
|
254
|
+
border-radius: 0;
|
|
255
|
+
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
|
|
502
256
|
}
|
|
503
257
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
.controls-right .brand-logo-link {
|
|
509
|
-
order: -1; /* force link container to appear first */
|
|
510
|
-
margin-right: 10px; /* spacing from buttons */
|
|
511
|
-
display: inline-block;
|
|
512
|
-
text-decoration: none;
|
|
258
|
+
.progress-handle-heart {
|
|
259
|
+
border-radius: 0;
|
|
513
260
|
}
|
|
514
261
|
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
display: none; /* Hidden by default, shown only on small screens */
|
|
262
|
+
.progress-handle-heart::before {
|
|
263
|
+
content: '❤';
|
|
264
|
+
font-size: 12px;
|
|
265
|
+
position: absolute;
|
|
266
|
+
top: 50%;
|
|
267
|
+
left: 50%;
|
|
268
|
+
transform: translate(-50%, -50%);
|
|
523
269
|
}
|
|
524
270
|
|
|
525
|
-
.
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
color: var(--player-button-color);
|
|
529
|
-
cursor: pointer;
|
|
530
|
-
padding: var(--player-button-padding);
|
|
531
|
-
border-radius: 6px;
|
|
532
|
-
display: flex;
|
|
533
|
-
align-items: center;
|
|
534
|
-
gap: 5px;
|
|
535
|
-
transition: all var(--player-transition-fast);
|
|
536
|
-
font-size: 14px;
|
|
537
|
-
font-weight: 500;
|
|
538
|
-
position: relative;
|
|
539
|
-
flex-shrink: 0;
|
|
540
|
-
min-width: 0;
|
|
541
|
-
white-space: nowrap;
|
|
271
|
+
.progress-handle-star {
|
|
272
|
+
border-radius: 0;
|
|
273
|
+
clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
|
|
542
274
|
}
|
|
543
275
|
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
transform: scale(1.05);
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
.settings-btn:active {
|
|
550
|
-
transform: scale(0.95);
|
|
551
|
-
background: var(--player-button-active);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
.settings-btn .icon::before {
|
|
555
|
-
content: '⚙️'; /* Settings gear emoji */
|
|
556
|
-
font-size: 16px;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
.settings-menu {
|
|
560
|
-
position: absolute;
|
|
561
|
-
bottom: 100%;
|
|
562
|
-
right: 0;
|
|
563
|
-
background: var(--player-bg-menu);
|
|
564
|
-
backdrop-filter: blur(10px);
|
|
565
|
-
border-radius: 8px;
|
|
566
|
-
padding: 8px 0;
|
|
567
|
-
margin-bottom: 10px;
|
|
568
|
-
opacity: 0;
|
|
569
|
-
visibility: hidden;
|
|
570
|
-
transition: all var(--player-transition-fast);
|
|
571
|
-
min-width: 180px;
|
|
572
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
573
|
-
z-index: 100;
|
|
574
|
-
box-shadow: var(--player-shadow-menu);
|
|
276
|
+
.progress-handle-none {
|
|
277
|
+
opacity: 0 !important;
|
|
575
278
|
}
|
|
576
279
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
visibility: visible;
|
|
581
|
-
transform: translateY(-4px);
|
|
582
|
-
}
|
|
280
|
+
/* ===================================
|
|
281
|
+
TOUCH/DRAG IMPROVEMENTS
|
|
282
|
+
=================================== */
|
|
583
283
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
284
|
+
/* Increase touch target ONLY for the handle, not the entire bar */
|
|
285
|
+
.progress-handle {
|
|
286
|
+
/* Invisible larger touch area */
|
|
287
|
+
&::after {
|
|
288
|
+
content: '';
|
|
289
|
+
position: absolute;
|
|
290
|
+
top: 50%;
|
|
291
|
+
left: 50%;
|
|
292
|
+
transform: translate(-50%, -50%);
|
|
293
|
+
width: 44px;
|
|
294
|
+
height: 44px;
|
|
295
|
+
border-radius: 50%;
|
|
296
|
+
/* Uncomment to debug: background: rgba(255, 0, 0, 0.2); */
|
|
297
|
+
}
|
|
594
298
|
}
|
|
595
299
|
|
|
596
|
-
|
|
597
|
-
|
|
300
|
+
/* ONLY when actively seeking - enlarge bar */
|
|
301
|
+
.progress-container.seeking {
|
|
302
|
+
.progress-bar {
|
|
303
|
+
height: calc(var(--player-progress-height) * 2);
|
|
304
|
+
transition: height 0.15s ease;
|
|
598
305
|
}
|
|
599
306
|
|
|
600
|
-
.
|
|
601
|
-
|
|
602
|
-
|
|
307
|
+
.progress-handle {
|
|
308
|
+
transform: translate(-50%, -50%) scale(1.4);
|
|
309
|
+
transition: transform 0.15s ease;
|
|
603
310
|
}
|
|
604
|
-
|
|
605
|
-
.settings-option-label {
|
|
606
|
-
display: flex;
|
|
607
|
-
align-items: center;
|
|
608
|
-
gap: 8px;
|
|
609
|
-
flex: 1;
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
.settings-option-value {
|
|
613
|
-
font-size: 12px;
|
|
614
|
-
color: var(--player-text-secondary);
|
|
615
|
-
opacity: 0.8;
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
.settings-option.active .settings-option-value {
|
|
619
|
-
color: var(--player-primary-color);
|
|
620
|
-
opacity: 1;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
/* Submenu styling for settings */
|
|
624
|
-
.settings-submenu {
|
|
625
|
-
position: absolute;
|
|
626
|
-
bottom: 0;
|
|
627
|
-
right: 100%;
|
|
628
|
-
background: var(--player-bg-menu);
|
|
629
|
-
backdrop-filter: blur(10px);
|
|
630
|
-
border-radius: 8px;
|
|
631
|
-
padding: 8px 0;
|
|
632
|
-
margin-right: 5px;
|
|
633
|
-
opacity: 0;
|
|
634
|
-
visibility: hidden;
|
|
635
|
-
transition: all var(--player-transition-fast);
|
|
636
|
-
min-width: 150px;
|
|
637
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
638
|
-
z-index: 101;
|
|
639
|
-
box-shadow: var(--player-shadow-menu);
|
|
640
311
|
}
|
|
641
312
|
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
.settings-suboption {
|
|
649
|
-
padding: 8px 16px;
|
|
650
|
-
color: var(--player-text-color);
|
|
651
|
-
cursor: pointer;
|
|
652
|
-
transition: all var(--player-transition-fast);
|
|
653
|
-
font-size: 13px;
|
|
654
|
-
display: flex;
|
|
655
|
-
align-items: center;
|
|
656
|
-
justify-content: space-between;
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
.settings-suboption:hover {
|
|
660
|
-
background: rgba(255, 255, 255, 0.1);
|
|
661
|
-
color: var(--player-primary-color);
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
.settings-suboption.active {
|
|
665
|
-
color: var(--player-primary-color);
|
|
666
|
-
font-weight: 600;
|
|
667
|
-
background: rgba(255, 255, 255, 0.05);
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
.settings-suboption.active::after {
|
|
671
|
-
content: '✓';
|
|
672
|
-
font-size: 12px;
|
|
673
|
-
color: var(--player-primary-color);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
/* RESPONSIVE DESIGN - PROGRESSIVE DEGRADATION CON MENU A TENDINA */
|
|
677
|
-
|
|
678
|
-
/* Large tablets and small desktops */
|
|
679
|
-
@media (max-width: 768px) {
|
|
680
|
-
.controls-left,
|
|
681
|
-
.controls-right {
|
|
682
|
-
gap: 8px;
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
.volume-slider {
|
|
686
|
-
width: 50px; /* Reduce volume slider width */
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
.time-display {
|
|
690
|
-
font-size: 12px;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
.icon {
|
|
694
|
-
font-size: 14px;
|
|
695
|
-
}
|
|
696
|
-
|
|
697
|
-
.control-btn {
|
|
698
|
-
padding: 6px;
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
.quality-btn {
|
|
702
|
-
min-height: 32px;
|
|
703
|
-
padding: 4px 6px;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
.selected-quality {
|
|
707
|
-
font-size: 12px;
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
.current-quality {
|
|
711
|
-
font-size: 9px;
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
.seek-tooltip {
|
|
715
|
-
font-size: 11px;
|
|
716
|
-
padding: 4px 8px;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
.title-overlay {
|
|
720
|
-
padding: 12px 15px 20px;
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
.title-text {
|
|
724
|
-
font-size: 16px;
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
.video-player::cue {
|
|
728
|
-
font-size: 16px;
|
|
729
|
-
padding: 6px 10px;
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
.controls-right .brand-logo {
|
|
733
|
-
height: 36px;
|
|
734
|
-
max-width: 100px;
|
|
735
|
-
margin-right: 8px;
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
/* Mobile phones */
|
|
740
|
-
@media (max-width: 480px) {
|
|
741
|
-
.controls-left,
|
|
742
|
-
.controls-right {
|
|
743
|
-
gap: 6px;
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
.volume-container {
|
|
747
|
-
/* Reduce volume slider width further instead of hiding */
|
|
748
|
-
flex-shrink: 3;
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
.volume-slider {
|
|
752
|
-
width: 35px; /* Further reduce volume slider */
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
.time-display span:nth-child(2) {
|
|
756
|
-
display: none; /* Hide the separator "/" */
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
.quality-btn {
|
|
760
|
-
min-height: 28px;
|
|
761
|
-
padding: 3px 5px;
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
.selected-quality {
|
|
765
|
-
font-size: 11px;
|
|
766
|
-
}
|
|
767
|
-
|
|
768
|
-
.current-quality {
|
|
769
|
-
font-size: 8px;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
.seek-tooltip {
|
|
773
|
-
font-size: 10px;
|
|
774
|
-
padding: 3px 6px;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
.title-overlay {
|
|
778
|
-
padding: 10px 12px 18px;
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
.title-text {
|
|
782
|
-
font-size: 14px;
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
.video-player::cue {
|
|
786
|
-
font-size: 14px;
|
|
787
|
-
padding: 4px 8px;
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
.controls-right .brand-logo {
|
|
791
|
-
height: 28px;
|
|
792
|
-
max-width: 80px;
|
|
793
|
-
margin-right: 5px;
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
/* SCHERMI MOLTO PICCOLI - ATTIVA MENU SETTINGS DROPDOWN */
|
|
798
|
-
@media (max-width: 350px) {
|
|
799
|
-
/* Mostra il menu Settings solo su schermi molto piccoli */
|
|
800
|
-
.settings-control {
|
|
801
|
-
display: block !important;
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
/* Nascondi i controlli individuali e spostali nel menu */
|
|
805
|
-
.pip-btn,
|
|
806
|
-
.speed-control,
|
|
807
|
-
.subtitles-control {
|
|
808
|
-
display: none !important;
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
/* Riduci ulteriormente gli spazi */
|
|
812
|
-
.controls-left,
|
|
813
|
-
.controls-right {
|
|
814
|
-
gap: 4px;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
.control-btn {
|
|
818
|
-
padding: 4px;
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
.icon {
|
|
822
|
-
font-size: 12px;
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
.quality-btn {
|
|
826
|
-
min-height: 24px;
|
|
827
|
-
padding: 2px 4px;
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
.selected-quality {
|
|
831
|
-
font-size: 10px;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
.current-quality {
|
|
835
|
-
font-size: 7px;
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
.controls-right .brand-logo {
|
|
839
|
-
height: 22px;
|
|
840
|
-
max-width: 50px;
|
|
841
|
-
margin-right: 3px;
|
|
842
|
-
}
|
|
843
|
-
|
|
844
|
-
.volume-slider {
|
|
845
|
-
width: 30px; /* Volume slider ancora più piccolo */
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
/* Riduci il menu settings per schermi ultra-piccoli */
|
|
849
|
-
.settings-menu {
|
|
850
|
-
min-width: 160px;
|
|
851
|
-
font-size: 12px;
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
.settings-option {
|
|
855
|
-
padding: 6px 12px;
|
|
856
|
-
font-size: 12px;
|
|
857
|
-
}
|
|
858
|
-
|
|
859
|
-
.settings-submenu {
|
|
860
|
-
min-width: 130px;
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
.settings-suboption {
|
|
864
|
-
padding: 6px 12px;
|
|
865
|
-
font-size: 11px;
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
/* Very small screens - ultra mobile */
|
|
870
|
-
@media (max-width: 280px) {
|
|
871
|
-
.controls-left,
|
|
872
|
-
.controls-right {
|
|
873
|
-
gap: 3px;
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
.control-btn {
|
|
877
|
-
padding: 3px;
|
|
878
|
-
}
|
|
879
|
-
|
|
880
|
-
.icon {
|
|
881
|
-
font-size: 10px;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
.quality-btn {
|
|
885
|
-
min-height: 20px;
|
|
886
|
-
padding: 1px 3px;
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
.selected-quality {
|
|
890
|
-
font-size: 9px;
|
|
891
|
-
}
|
|
892
|
-
|
|
893
|
-
.current-quality {
|
|
894
|
-
font-size: 6px;
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
.controls-right .brand-logo {
|
|
898
|
-
height: 18px;
|
|
899
|
-
max-width: 40px;
|
|
900
|
-
margin-right: 2px;
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
.volume-slider {
|
|
904
|
-
width: 25px;
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
/* Menu settings ultra-compatto */
|
|
908
|
-
.settings-menu {
|
|
909
|
-
min-width: 140px;
|
|
910
|
-
font-size: 11px;
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
.settings-option {
|
|
914
|
-
padding: 5px 10px;
|
|
915
|
-
font-size: 11px;
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
.settings-submenu {
|
|
919
|
-
min-width: 120px;
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
.settings-suboption {
|
|
923
|
-
padding: 5px 10px;
|
|
924
|
-
font-size: 10px;
|
|
925
|
-
}
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
/* OVERFLOW HANDLING - CRITICAL FIX */
|
|
929
|
-
@media (max-width: 600px) {
|
|
930
|
-
.controls-main {
|
|
931
|
-
/* Allow horizontal scrolling if absolutely necessary */
|
|
932
|
-
overflow-x: auto;
|
|
933
|
-
scrollbar-width: none; /* Firefox */
|
|
934
|
-
-ms-overflow-style: none; /* Internet Explorer 10+ */
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
.controls-main::-webkit-scrollbar {
|
|
938
|
-
display: none; /* Safari and Chrome */
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
.controls-left,
|
|
942
|
-
.controls-right {
|
|
943
|
-
/* Ensure buttons stay in a single line */
|
|
944
|
-
flex-wrap: nowrap;
|
|
945
|
-
white-space: nowrap;
|
|
946
|
-
/* Allow further shrinking */
|
|
947
|
-
flex-shrink: 1;
|
|
948
|
-
min-width: fit-content;
|
|
949
|
-
}
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
/* PLAYLIST CONTROLS */
|
|
953
|
-
.controls-right .playlist-prev-btn,
|
|
954
|
-
.controls-right .playlist-next-btn {
|
|
955
|
-
display: none; /* Hidden by default, shown only when playlist is detected */
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
.controls-right .playlist-prev-btn.playlist-active,
|
|
959
|
-
.controls-right .playlist-next-btn.playlist-active {
|
|
960
|
-
display: flex;
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
/* Playlist button styles */
|
|
964
|
-
.playlist-prev-btn .icon::before {
|
|
965
|
-
content: '⏮';
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
.playlist-next-btn .icon::before {
|
|
969
|
-
content: '⏭';
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
/* Disabled state for playlist buttons */
|
|
973
|
-
.playlist-prev-btn:disabled,
|
|
974
|
-
.playlist-next-btn:disabled {
|
|
975
|
-
opacity: 0.4;
|
|
976
|
-
cursor: not-allowed;
|
|
977
|
-
pointer-events: none;
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
.playlist-prev-btn:disabled .icon,
|
|
981
|
-
.playlist-next-btn:disabled .icon {
|
|
982
|
-
opacity: 0.5;
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
/* Responsive playlist buttons */
|
|
986
|
-
@media (max-width: 768px) {
|
|
987
|
-
.playlist-prev-btn .icon::before,
|
|
988
|
-
.playlist-next-btn .icon::before {
|
|
989
|
-
font-size: 16px;
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
|
|
993
|
-
@media (max-width: 480px) {
|
|
994
|
-
.playlist-prev-btn .icon::before,
|
|
995
|
-
.playlist-next-btn .icon::before {
|
|
996
|
-
font-size: 14px;
|
|
997
|
-
}
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
/* FULLSCREEN */
|
|
1001
|
-
.video-container:fullscreen,
|
|
1002
|
-
.video-container:-webkit-full-screen,
|
|
1003
|
-
.video-container:-moz-full-screen {
|
|
1004
|
-
width: 100vw;
|
|
1005
|
-
height: 100vh;
|
|
1006
|
-
border-radius: 0;
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
/* ANIMATIONS */
|
|
1010
|
-
@keyframes qualityChange {
|
|
1011
|
-
0% {
|
|
1012
|
-
opacity: 0.7;
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
|
-
50% {
|
|
1016
|
-
opacity: 0.3;
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
100% {
|
|
1020
|
-
opacity: 1;
|
|
1021
|
-
}
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
.quality-changing {
|
|
1025
|
-
animation: qualityChange 0.5s ease-in-out;
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
|
-
/* FOCUS ACCESSIBILITY */
|
|
1029
|
-
.control-btn:focus {
|
|
1030
|
-
outline: 2px solid var(--player-primary-color);
|
|
1031
|
-
outline-offset: 2px;
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
.volume-slider:focus {
|
|
1035
|
-
outline: 2px solid var(--player-primary-color);
|
|
1036
|
-
outline-offset: 2px;
|
|
1037
|
-
}
|
|
1038
|
-
|
|
1039
|
-
/* THEME UTILITIES */
|
|
1040
|
-
.player-large-controls {
|
|
1041
|
-
--player-icon-size: 24px;
|
|
1042
|
-
--player-button-padding: 12px;
|
|
1043
|
-
--player-progress-height: 8px;
|
|
1044
|
-
--player-progress-handle-size: 20px;
|
|
1045
|
-
--player-title-overlay-padding: 18px 24px 30px;
|
|
1046
|
-
}
|
|
1047
|
-
|
|
1048
|
-
.player-compact-controls {
|
|
1049
|
-
--player-icon-size: 16px;
|
|
1050
|
-
--player-button-padding: 4px;
|
|
1051
|
-
--player-controls-padding: 15px 10px 10px;
|
|
1052
|
-
--player-title-overlay-padding: 12px 16px 20px;
|
|
1053
|
-
}
|
|
1054
|
-
|
|
1055
|
-
/* FIREFOX-SPECIFIC VOLUME SLIDER FIX */
|
|
1056
|
-
@-moz-document url-prefix() {
|
|
1057
|
-
.volume-slider::-moz-range-thumb {
|
|
1058
|
-
/* Additional Firefox alignment correction */
|
|
1059
|
-
transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px));
|
|
1060
|
-
}
|
|
1061
|
-
|
|
1062
|
-
.volume-slider::-moz-range-thumb:hover {
|
|
1063
|
-
transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 2px)) scale(1.1);
|
|
1064
|
-
}
|
|
1065
|
-
/* Ensure the track alignment is also correct */
|
|
1066
|
-
.volume-slider::-moz-range-track {
|
|
1067
|
-
height: var(--player-volume-height);
|
|
1068
|
-
background: linear-gradient(to right, var(--player-primary-dark) 0%, var(--player-primary-dark) var(--player-volume-fill), var(--player-volume-bg) var(--player-volume-fill), var(--player-volume-bg) 100%);
|
|
1069
|
-
border-radius: calc(var(--player-volume-height) / 2);
|
|
1070
|
-
border: none;
|
|
1071
|
-
transition: background var(--player-transition-fast);
|
|
1072
|
-
margin: 0;
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
|
-
/* Alternative approach - using Firefox-specific selector */
|
|
1077
|
-
@supports (-moz-appearance: none) {
|
|
1078
|
-
.volume-slider {
|
|
1079
|
-
/* Slight vertical adjustment for Firefox only */
|
|
1080
|
-
margin-top: -1px;
|
|
1081
|
-
}
|
|
1082
|
-
|
|
1083
|
-
.volume-slider::-moz-range-thumb {
|
|
1084
|
-
transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px));
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
.volume-slider::-moz-range-thumb:hover {
|
|
1088
|
-
transform: translateY(calc((var(--player-volume-height) - var(--player-volume-handle-size)) / 2 - 1.5px)) scale(1.1);
|
|
1089
|
-
}
|
|
1090
|
-
}
|
|
1091
|
-
|
|
1092
|
-
/* FIREFOX VOLUME CONTAINER POSITION FIX */
|
|
1093
|
-
@-moz-document url-prefix() {
|
|
1094
|
-
.volume-container {
|
|
1095
|
-
position: relative;
|
|
1096
|
-
top: 2px !important;
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
|
-
.volume-slider::-moz-range-thumb {
|
|
1100
|
-
margin-top: -6px !important;
|
|
1101
|
-
transform: translateY(-2px) !important;
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
.volume-slider::-moz-range-thumb:hover {
|
|
1105
|
-
transform: translateY(-2px) scale(1.1) !important;
|
|
1106
|
-
}
|
|
1107
|
-
}
|
|
1108
|
-
|
|
1109
|
-
/* RESOLUTION CONTROL SYSTEM - Video resolution modes management */
|
|
1110
|
-
|
|
1111
|
-
/* Base styles for resolution control */
|
|
1112
|
-
.video-player {
|
|
1113
|
-
object-position: center center;
|
|
1114
|
-
}
|
|
1115
|
-
|
|
1116
|
-
/* Normal (default) - maintain original aspect ratio */
|
|
1117
|
-
.resolution-normal .video-player {
|
|
1118
|
-
object-fit: contain;
|
|
1119
|
-
object-position: center center;
|
|
1120
|
-
}
|
|
1121
|
-
|
|
1122
|
-
/* 4:3 - Force 4:3 format */
|
|
1123
|
-
.resolution-4-3 .video-player {
|
|
1124
|
-
object-fit: fill;
|
|
1125
|
-
aspect-ratio: 4/3;
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
.resolution-4-3 .video-wrapper {
|
|
1129
|
-
aspect-ratio: 4/3;
|
|
1130
|
-
}
|
|
1131
|
-
|
|
1132
|
-
/* 16:9 - Force 16:9 format */
|
|
1133
|
-
.resolution-16-9 .video-player {
|
|
1134
|
-
object-fit: fill;
|
|
1135
|
-
aspect-ratio: 16/9;
|
|
1136
|
-
}
|
|
1137
|
-
|
|
1138
|
-
.resolution-16-9 .video-wrapper {
|
|
1139
|
-
aspect-ratio: 16/9;
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
/* Stretched - Stretch video to fill container completely */
|
|
1143
|
-
.resolution-stretched .video-player {
|
|
1144
|
-
object-fit: fill;
|
|
1145
|
-
width: 100%;
|
|
1146
|
-
height: 100%;
|
|
1147
|
-
}
|
|
1148
|
-
|
|
1149
|
-
.resolution-stretched .video-wrapper {
|
|
1150
|
-
height: auto;
|
|
1151
|
-
min-height: 300px;
|
|
1152
|
-
}
|
|
1153
|
-
|
|
1154
|
-
/* Fit to Screen - Adapt to screen without deforming, may crop parts */
|
|
1155
|
-
.resolution-fit-to-screen .video-player {
|
|
1156
|
-
object-fit: cover;
|
|
1157
|
-
object-position: center center;
|
|
1158
|
-
width: 100%;
|
|
1159
|
-
height: 100%;
|
|
1160
|
-
}
|
|
1161
|
-
|
|
1162
|
-
.resolution-fit-to-screen .video-wrapper {
|
|
1163
|
-
height: 100vh;
|
|
1164
|
-
max-height: 100vh;
|
|
1165
|
-
}
|
|
1166
|
-
|
|
1167
|
-
/* Scale to Fit - PERFECT for smartphone videos! Scales to maximum size without distortion or cropping */
|
|
1168
|
-
.resolution-scale-to-fit .video-player {
|
|
1169
|
-
object-fit: contain;
|
|
1170
|
-
object-position: center center;
|
|
1171
|
-
width: 100%;
|
|
1172
|
-
height: 100%;
|
|
1173
|
-
max-width: 100vw;
|
|
1174
|
-
max-height: 100vh;
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1177
|
-
.resolution-scale-to-fit .video-wrapper {
|
|
1178
|
-
display: flex;
|
|
1179
|
-
align-items: center;
|
|
1180
|
-
justify-content: center;
|
|
1181
|
-
height: 70vh;
|
|
1182
|
-
min-height: 400px;
|
|
1183
|
-
background: var(--player-bg-primary, #000);
|
|
1184
|
-
}
|
|
1185
|
-
|
|
1186
|
-
/* Enhanced scale-to-fit for different viewport orientations */
|
|
1187
|
-
@media (orientation: portrait) {
|
|
1188
|
-
.resolution-scale-to-fit .video-wrapper {
|
|
1189
|
-
height: 50vh;
|
|
1190
|
-
min-height: 350px;
|
|
1191
|
-
}
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
@media (orientation: landscape) {
|
|
1195
|
-
.resolution-scale-to-fit .video-wrapper {
|
|
1196
|
-
height: 80vh;
|
|
1197
|
-
min-height: 450px;
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
/* Responsive adjustments for resolution modes */
|
|
1202
|
-
@media (max-width: 768px) {
|
|
1203
|
-
/* On mobile, some modes might need adjustments */
|
|
1204
|
-
.resolution-fit-to-screen .video-wrapper {
|
|
1205
|
-
height: 50vh;
|
|
1206
|
-
min-height: 250px;
|
|
1207
|
-
}
|
|
1208
|
-
|
|
1209
|
-
.resolution-4-3 .video-wrapper,
|
|
1210
|
-
.resolution-16-9 .video-wrapper {
|
|
1211
|
-
min-height: 200px;
|
|
1212
|
-
}
|
|
1213
|
-
|
|
1214
|
-
.resolution-scale-to-fit .video-wrapper {
|
|
1215
|
-
height: 45vh;
|
|
1216
|
-
min-height: 300px;
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
@media (max-width: 480px) {
|
|
1221
|
-
.resolution-fit-to-screen .video-wrapper {
|
|
1222
|
-
height: 40vh;
|
|
1223
|
-
min-height: 200px;
|
|
1224
|
-
}
|
|
1225
|
-
|
|
1226
|
-
.resolution-4-3 .video-wrapper,
|
|
1227
|
-
.resolution-16-9 .video-wrapper {
|
|
1228
|
-
min-height: 180px;
|
|
1229
|
-
}
|
|
1230
|
-
|
|
1231
|
-
.resolution-scale-to-fit .video-wrapper {
|
|
1232
|
-
height: 40vh;
|
|
1233
|
-
min-height: 250px;
|
|
1234
|
-
}
|
|
1235
|
-
}
|
|
1236
|
-
|
|
1237
|
-
/* Transitions for smooth changes */
|
|
1238
|
-
.video-player {
|
|
1239
|
-
transition: object-fit 0.3s ease, aspect-ratio 0.3s ease;
|
|
1240
|
-
}
|
|
1241
|
-
|
|
1242
|
-
.video-wrapper {
|
|
1243
|
-
transition: aspect-ratio 0.3s ease, height 0.3s ease;
|
|
1244
|
-
}
|
|
1245
|
-
|
|
1246
|
-
/* Fallback for browsers that don't support aspect-ratio */
|
|
1247
|
-
@supports not (aspect-ratio: 1) {
|
|
1248
|
-
.resolution-4-3 .video-wrapper {
|
|
1249
|
-
padding-bottom: 75%; /* 4:3 ratio fallback */
|
|
1250
|
-
height: 0;
|
|
1251
|
-
position: relative;
|
|
1252
|
-
}
|
|
1253
|
-
|
|
1254
|
-
.resolution-4-3 .video-player {
|
|
1255
|
-
position: absolute;
|
|
1256
|
-
top: 0;
|
|
1257
|
-
left: 0;
|
|
1258
|
-
width: 100%;
|
|
1259
|
-
height: 100%;
|
|
1260
|
-
}
|
|
1261
|
-
|
|
1262
|
-
.resolution-16-9 .video-wrapper {
|
|
1263
|
-
padding-bottom: 56.25%; /* 16:9 ratio fallback */
|
|
1264
|
-
height: 0;
|
|
1265
|
-
position: relative;
|
|
1266
|
-
}
|
|
1267
|
-
|
|
1268
|
-
.resolution-16-9 .video-player {
|
|
1269
|
-
position: absolute;
|
|
1270
|
-
top: 0;
|
|
1271
|
-
left: 0;
|
|
1272
|
-
width: 100%;
|
|
1273
|
-
height: 100%;
|
|
1274
|
-
}
|
|
1275
|
-
}
|
|
1276
|
-
|
|
1277
|
-
/* Quality changing state - show loading during quality change */
|
|
1278
|
-
.quality-changing .video-player {
|
|
1279
|
-
filter: brightness(0.7);
|
|
1280
|
-
}
|
|
1281
|
-
|
|
1282
|
-
/* Utility classes for debugging */
|
|
1283
|
-
.resolution-debug .video-wrapper::before {
|
|
1284
|
-
content: 'Resolution: ' attr(data-resolution);
|
|
1285
|
-
position: absolute;
|
|
1286
|
-
top: 10px;
|
|
1287
|
-
left: 10px;
|
|
1288
|
-
background: rgba(0, 0, 0, 0.7);
|
|
1289
|
-
color: white;
|
|
1290
|
-
padding: 5px 10px;
|
|
1291
|
-
border-radius: 4px;
|
|
1292
|
-
font-size: 12px;
|
|
1293
|
-
z-index: 1000;
|
|
1294
|
-
pointer-events: none;
|
|
1295
|
-
}
|
|
1296
|
-
|
|
1297
|
-
/* CRITICAL: Ensure all control containers can handle overflow gracefully */
|
|
1298
|
-
.controls,
|
|
1299
|
-
.controls-main,
|
|
1300
|
-
.controls-left,
|
|
1301
|
-
.controls-right {
|
|
1302
|
-
overflow: visible !important;
|
|
1303
|
-
}
|
|
1304
|
-
|
|
1305
|
-
/* Force buttons to stay in one line and allow flexible sizing */
|
|
1306
|
-
.controls-left,
|
|
1307
|
-
.controls-right {
|
|
1308
|
-
flex-wrap: nowrap !important;
|
|
1309
|
-
white-space: nowrap !important;
|
|
1310
|
-
}
|
|
1311
|
-
|
|
1312
|
-
/* Allow buttons to shrink below their natural content size when absolutely necessary */
|
|
1313
|
-
.control-btn {
|
|
1314
|
-
min-width: 0 !important;
|
|
1315
|
-
white-space: nowrap !important;
|
|
1316
|
-
}
|
|
1317
|
-
/* CSS for subtitles SRT */
|
|
1318
|
-
video::cue {
|
|
1319
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
1320
|
-
color: white;
|
|
1321
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
1322
|
-
font-size: 18px;
|
|
1323
|
-
font-weight: normal;
|
|
1324
|
-
line-height: 1.2;
|
|
1325
|
-
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
|
1326
|
-
padding: 4px 8px;
|
|
1327
|
-
border-radius: 4px;
|
|
1328
|
-
white-space: pre-line;
|
|
1329
|
-
}
|
|
1330
|
-
|
|
1331
|
-
/* Fix for browser WebKit (Chrome, Safari, Edge) */
|
|
1332
|
-
video::-webkit-media-text-track-display {
|
|
1333
|
-
color: white;
|
|
1334
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
1335
|
-
background-color: rgba(0, 0, 0, 0.8);
|
|
1336
|
-
border-radius: 4px;
|
|
1337
|
-
padding: 4px 8px;
|
|
1338
|
-
font-size: 18px;
|
|
1339
|
-
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
|
1340
|
-
}
|
|
1341
|
-
/* Custom subtitle overlay responsive styles */
|
|
1342
|
-
.custom-subtitle-overlay {
|
|
1343
|
-
font-size: clamp(12px, 4vw, 18px);
|
|
1344
|
-
}
|
|
1345
|
-
|
|
1346
|
-
/* Tablet responsiveness */
|
|
1347
|
-
@media (max-width: 768px) {
|
|
1348
|
-
.custom-subtitle-overlay {
|
|
1349
|
-
font-size: 16px !important;
|
|
1350
|
-
bottom: 70px !important;
|
|
1351
|
-
max-width: 85% !important;
|
|
1352
|
-
padding: 6px 12px !important;
|
|
1353
|
-
line-height: 1.2 !important;
|
|
1354
|
-
}
|
|
1355
|
-
}
|
|
1356
|
-
|
|
1357
|
-
/* Mobile phone responsiveness */
|
|
1358
|
-
@media (max-width: 480px) {
|
|
1359
|
-
.custom-subtitle-overlay {
|
|
1360
|
-
font-size: 14px !important;
|
|
1361
|
-
bottom: 60px !important;
|
|
1362
|
-
max-width: 90% !important;
|
|
1363
|
-
padding: 5px 10px !important;
|
|
1364
|
-
line-height: 1.15 !important;
|
|
1365
|
-
}
|
|
1366
|
-
}
|
|
1367
|
-
|
|
1368
|
-
/* Very small screens */
|
|
1369
|
-
@media (max-width: 360px) {
|
|
1370
|
-
.custom-subtitle-overlay {
|
|
1371
|
-
font-size: 12px !important;
|
|
1372
|
-
bottom: 50px !important;
|
|
1373
|
-
max-width: 95% !important;
|
|
1374
|
-
padding: 4px 8px !important;
|
|
1375
|
-
}
|
|
1376
|
-
}
|
|
1377
|
-
|
|
1378
|
-
/* Landscape mobile optimization */
|
|
1379
|
-
@media (max-height: 500px) and (orientation: landscape) {
|
|
1380
|
-
.custom-subtitle-overlay {
|
|
1381
|
-
font-size: 13px !important;
|
|
1382
|
-
bottom: 45px !important;
|
|
1383
|
-
max-width: 85% !important;
|
|
1384
|
-
padding: 4px 10px !important;
|
|
1385
|
-
}
|
|
1386
|
-
}
|
|
1387
|
-
|
|
1388
|
-
/* Scrollable dropdown menus for small player heights */
|
|
1389
|
-
.speed-menu,
|
|
1390
|
-
.quality-menu,
|
|
1391
|
-
.subtitles-menu {
|
|
1392
|
-
max-height: 200px;
|
|
1393
|
-
overflow-y: auto;
|
|
1394
|
-
scrollbar-width: thin;
|
|
1395
|
-
scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
|
|
1396
|
-
}
|
|
1397
|
-
|
|
1398
|
-
/* Custom scrollbar for WebKit browsers */
|
|
1399
|
-
.speed-menu::-webkit-scrollbar,
|
|
1400
|
-
.quality-menu::-webkit-scrollbar,
|
|
1401
|
-
.subtitles-menu::-webkit-scrollbar {
|
|
1402
|
-
width: 6px;
|
|
1403
|
-
}
|
|
1404
|
-
|
|
1405
|
-
.speed-menu::-webkit-scrollbar-track,
|
|
1406
|
-
.quality-menu::-webkit-scrollbar-track,
|
|
1407
|
-
.subtitles-menu::-webkit-scrollbar-track {
|
|
1408
|
-
background: rgba(255, 255, 255, 0.1);
|
|
1409
|
-
border-radius: 3px;
|
|
1410
|
-
}
|
|
1411
|
-
|
|
1412
|
-
.speed-menu::-webkit-scrollbar-thumb,
|
|
1413
|
-
.quality-menu::-webkit-scrollbar-thumb,
|
|
1414
|
-
.subtitles-menu::-webkit-scrollbar-thumb {
|
|
1415
|
-
background: var(--player-primary-color);
|
|
1416
|
-
border-radius: 3px;
|
|
1417
|
-
}
|
|
1418
|
-
|
|
1419
|
-
.speed-menu::-webkit-scrollbar-thumb:hover,
|
|
1420
|
-
.quality-menu::-webkit-scrollbar-thumb:hover,
|
|
1421
|
-
.subtitles-menu::-webkit-scrollbar-thumb:hover {
|
|
1422
|
-
background: var(--player-primary-hover);
|
|
1423
|
-
}
|
|
1424
|
-
|
|
1425
|
-
/* Responsive max-height for very small players */
|
|
1426
|
-
@media (max-height: 400px) {
|
|
1427
|
-
.speed-menu,
|
|
1428
|
-
.quality-menu,
|
|
1429
|
-
.subtitles-menu {
|
|
1430
|
-
max-height: 150px;
|
|
1431
|
-
}
|
|
1432
|
-
}
|
|
1433
|
-
|
|
1434
|
-
@media (max-height: 300px) {
|
|
1435
|
-
.speed-menu,
|
|
1436
|
-
.quality-menu,
|
|
1437
|
-
.subtitles-menu {
|
|
1438
|
-
max-height: 120px;
|
|
1439
|
-
}
|
|
1440
|
-
}
|
|
1441
|
-
|
|
1442
|
-
/* Scrollbar for settings submenus on small screens */
|
|
1443
|
-
.settings-submenu {
|
|
1444
|
-
max-height: 180px;
|
|
1445
|
-
overflow-y: auto;
|
|
1446
|
-
scrollbar-width: thin;
|
|
1447
|
-
scrollbar-color: var(--player-primary-color) rgba(255, 255, 255, 0.1);
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
/* Custom scrollbar for settings submenu in WebKit browsers */
|
|
1451
|
-
.settings-submenu::-webkit-scrollbar {
|
|
1452
|
-
width: 6px;
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
.settings-submenu::-webkit-scrollbar-track {
|
|
1456
|
-
background: rgba(255, 255, 255, 0.1);
|
|
1457
|
-
border-radius: 3px;
|
|
1458
|
-
}
|
|
1459
|
-
|
|
1460
|
-
.settings-submenu::-webkit-scrollbar-thumb {
|
|
1461
|
-
background: var(--player-primary-color);
|
|
1462
|
-
border-radius: 3px;
|
|
1463
|
-
}
|
|
1464
|
-
|
|
1465
|
-
.settings-submenu::-webkit-scrollbar-thumb:hover {
|
|
1466
|
-
background: var(--player-primary-hover);
|
|
1467
|
-
}
|
|
1468
|
-
|
|
1469
|
-
/* Responsive adjustments for settings submenu on very small screens */
|
|
1470
|
-
@media (max-width: 350px) {
|
|
1471
|
-
.settings-submenu {
|
|
1472
|
-
max-height: 140px;
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
|
|
1476
|
-
@media (max-height: 400px) {
|
|
1477
|
-
.settings-submenu {
|
|
1478
|
-
max-height: 120px;
|
|
1479
|
-
}
|
|
1480
|
-
}
|
|
1481
|
-
|
|
1482
|
-
/* Volume Slider Configuration - Base styles */
|
|
1483
|
-
.volume-container {
|
|
1484
|
-
position: relative;
|
|
1485
|
-
display: flex;
|
|
1486
|
-
align-items: center;
|
|
1487
|
-
gap: var(--player-controls-gap);
|
|
1488
|
-
}
|
|
1489
|
-
|
|
1490
|
-
/* Horizontal Volume Slider (default) - Base width reduced */
|
|
1491
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1492
|
-
width: 80px; /* Ridotto da var(--player-volume-width) a 80px fissi */
|
|
1493
|
-
height: var(--player-volume-height);
|
|
1494
|
-
background: var(--player-volume-bg);
|
|
1495
|
-
border-radius: calc(var(--player-volume-height) / 2);
|
|
1496
|
-
transition: all 0.3s ease;
|
|
1497
|
-
}
|
|
1498
|
-
|
|
1499
|
-
/* Responsive width reduction for horizontal slider */
|
|
1500
|
-
@media (max-width: 1200px) {
|
|
1501
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1502
|
-
width: 70px;
|
|
1503
|
-
}
|
|
1504
|
-
}
|
|
1505
|
-
|
|
1506
|
-
@media (max-width: 900px) {
|
|
1507
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1508
|
-
width: 60px;
|
|
1509
|
-
}
|
|
1510
|
-
}
|
|
1511
|
-
|
|
1512
|
-
@media (max-width: 768px) {
|
|
1513
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1514
|
-
width: 50px;
|
|
1515
|
-
}
|
|
1516
|
-
}
|
|
1517
|
-
|
|
1518
|
-
@media (max-width: 600px) {
|
|
1519
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1520
|
-
width: 40px;
|
|
1521
|
-
}
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
|
-
/* Vertical Volume Slider (always visible) */
|
|
1525
|
-
.volume-container[data-orientation="vertical"] {
|
|
1526
|
-
flex-direction: column;
|
|
1527
|
-
height: 80px;
|
|
1528
|
-
justify-content: center;
|
|
1529
|
-
}
|
|
1530
|
-
|
|
1531
|
-
.volume-container[data-orientation="vertical"] .volume-slider {
|
|
1532
|
-
width: 4px;
|
|
1533
|
-
height: 60px;
|
|
1534
|
-
writing-mode: bt-lr; /* IE */
|
|
1535
|
-
-webkit-appearance: slider-vertical; /* WebKit */
|
|
1536
|
-
background: var(--player-volume-bg);
|
|
1537
|
-
border-radius: 2px;
|
|
1538
|
-
transform: rotate(0deg);
|
|
1539
|
-
transition: all 0.3s ease;
|
|
1540
|
-
}
|
|
1541
|
-
|
|
1542
|
-
/* Responsive: Force vertical behavior for horizontal sliders under 550px */
|
|
1543
|
-
@media (max-width: 550px) {
|
|
1544
|
-
/* Hide horizontal slider by default on mobile */
|
|
1545
|
-
.volume-container[data-orientation="horizontal"] .volume-slider {
|
|
1546
|
-
position: absolute;
|
|
1547
|
-
opacity: 0;
|
|
1548
|
-
visibility: hidden;
|
|
1549
|
-
pointer-events: none;
|
|
1550
|
-
width: 0;
|
|
1551
|
-
height: 0;
|
|
1552
|
-
transform: translateX(-50%) rotate(-90deg);
|
|
1553
|
-
transform-origin: center center;
|
|
1554
|
-
transition: opacity 0.1s ease, visibility 0.1s ease;
|
|
1555
|
-
}
|
|
1556
|
-
|
|
1557
|
-
/* Show vertical slider on hover for horizontal mode */
|
|
1558
|
-
.mute-btn:hover + .volume-container[data-orientation="horizontal"] .volume-slider,
|
|
1559
|
-
.volume-container[data-orientation="horizontal"]:hover .volume-slider {
|
|
1560
|
-
position: absolute;
|
|
1561
|
-
opacity: 1;
|
|
1562
|
-
visibility: visible;
|
|
1563
|
-
pointer-events: auto;
|
|
1564
|
-
width: 60px;
|
|
1565
|
-
height: 4px;
|
|
1566
|
-
bottom: 45px;
|
|
1567
|
-
left: -20px;
|
|
1568
|
-
transform: translateX(-50%) translateY(0%) rotate(-90deg);
|
|
1569
|
-
transform-origin: center center;
|
|
1570
|
-
z-index: 1000;
|
|
1571
|
-
background: rgba(0, 0, 0, 0.9);
|
|
1572
|
-
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
1573
|
-
border-radius: 6px;
|
|
1574
|
-
padding: 4px;
|
|
1575
|
-
backdrop-filter: blur(10px);
|
|
1576
|
-
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
|
|
1577
|
-
transition: all 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
|
-
/* Extend hover area of mute button for horizontal mode */
|
|
1581
|
-
.volume-container[data-orientation="horizontal"] + .mute-btn,
|
|
1582
|
-
.mute-btn + .volume-container[data-orientation="horizontal"] .mute-btn {
|
|
1583
|
-
padding: 15px;
|
|
1584
|
-
margin: -7px;
|
|
1585
|
-
position: relative;
|
|
1586
|
-
z-index: 1001;
|
|
1587
|
-
}
|
|
1588
|
-
|
|
1589
|
-
/* Keep hover active when moving from button to slider */
|
|
1590
|
-
.mute-btn:hover + .volume-container[data-orientation="horizontal"]::before,
|
|
1591
|
-
.volume-container[data-orientation="horizontal"]::before {
|
|
1592
|
-
content: '';
|
|
1593
|
-
position: absolute;
|
|
1594
|
-
top: -50px;
|
|
1595
|
-
left: -40px;
|
|
1596
|
-
right: -20px;
|
|
1597
|
-
bottom: -10px;
|
|
1598
|
-
background: transparent;
|
|
1599
|
-
z-index: 999;
|
|
1600
|
-
}
|
|
1601
|
-
|
|
1602
|
-
/* Hide thumb by default for horizontal mode on mobile */
|
|
1603
|
-
.volume-container[data-orientation="horizontal"] .volume-slider::-webkit-slider-thumb {
|
|
1604
|
-
opacity: 0;
|
|
1605
|
-
visibility: hidden;
|
|
1606
|
-
transition: none !important;
|
|
1607
|
-
}
|
|
1608
|
-
|
|
1609
|
-
.volume-container[data-orientation="horizontal"] .volume-slider::-moz-range-thumb {
|
|
1610
|
-
opacity: 0;
|
|
1611
|
-
visibility: hidden;
|
|
1612
|
-
transition: none !important;
|
|
1613
|
-
}
|
|
1614
|
-
|
|
1615
|
-
/* Show thumb only when in hover for horizontal mode */
|
|
1616
|
-
.volume-container[data-orientation="horizontal"]:hover .volume-slider::-webkit-slider-thumb,
|
|
1617
|
-
.mute-btn:hover + .volume-container[data-orientation="horizontal"] .volume-slider::-webkit-slider-thumb {
|
|
1618
|
-
opacity: 1;
|
|
1619
|
-
visibility: visible;
|
|
1620
|
-
-webkit-appearance: none;
|
|
1621
|
-
width: var(--player-volume-handle-size);
|
|
1622
|
-
height: var(--player-volume-handle-size);
|
|
1623
|
-
border-radius: 50%;
|
|
1624
|
-
background: var(--player-primary-color);
|
|
1625
|
-
cursor: pointer;
|
|
1626
|
-
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
1627
|
-
transition: none !important;
|
|
1628
|
-
}
|
|
1629
|
-
|
|
1630
|
-
.volume-container[data-orientation="horizontal"]:hover .volume-slider::-moz-range-thumb,
|
|
1631
|
-
.mute-btn:hover + .volume-container[data-orientation="horizontal"] .volume-slider::-moz-range-thumb {
|
|
1632
|
-
opacity: 1;
|
|
1633
|
-
visibility: visible;
|
|
1634
|
-
width: var(--player-volume-handle-size);
|
|
1635
|
-
height: var(--player-volume-handle-size);
|
|
1636
|
-
border-radius: 50%;
|
|
1637
|
-
background: var(--player-primary-color);
|
|
1638
|
-
cursor: pointer;
|
|
1639
|
-
border: none;
|
|
1640
|
-
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
1641
|
-
transition: none !important;
|
|
1642
|
-
}
|
|
1643
|
-
|
|
1644
|
-
/* Vertical sliders remain unchanged on mobile */
|
|
1645
|
-
.volume-container[data-orientation="vertical"] {
|
|
1646
|
-
/* Keep original vertical styling */
|
|
1647
|
-
}
|
|
1648
|
-
}
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
/* CHAPTER MARKERS SYSTEM */
|
|
1653
|
-
|
|
1654
|
-
/* Container for all chapter markers */
|
|
1655
|
-
.chapter-markers-container {
|
|
1656
|
-
position: absolute;
|
|
1657
|
-
top: 0;
|
|
1658
|
-
left: 0;
|
|
1659
|
-
width: 100%;
|
|
1660
|
-
height: 100%;
|
|
1661
|
-
pointer-events: none;
|
|
1662
|
-
z-index: 3;
|
|
1663
|
-
}
|
|
1664
|
-
|
|
1665
|
-
/* Individual chapter marker */
|
|
1666
|
-
.chapter-marker {
|
|
1667
|
-
position: absolute;
|
|
1668
|
-
top: 0;
|
|
1669
|
-
height: 100%;
|
|
1670
|
-
width: 3px;
|
|
1671
|
-
background: var(--player-primary-color);
|
|
1672
|
-
opacity: 0.7;
|
|
1673
|
-
cursor: pointer;
|
|
1674
|
-
pointer-events: auto;
|
|
1675
|
-
transition: all var(--player-transition-fast);
|
|
1676
|
-
border-radius: 2px;
|
|
1677
|
-
transform: translateX(-50%);
|
|
1678
|
-
}
|
|
1679
|
-
|
|
1680
|
-
/* Hover state for chapter marker */
|
|
1681
|
-
.chapter-marker:hover {
|
|
1682
|
-
opacity: 1;
|
|
1683
|
-
width: 4px;
|
|
1684
|
-
height: 120%;
|
|
1685
|
-
top: -10%;
|
|
1686
|
-
box-shadow: 0 0 8px var(--player-primary-color);
|
|
1687
|
-
}
|
|
1688
|
-
|
|
1689
|
-
/* Active chapter marker (currently playing) */
|
|
1690
|
-
.chapter-marker.active {
|
|
1691
|
-
background: var(--player-primary-hover);
|
|
1692
|
-
opacity: 1;
|
|
1693
|
-
width: 4px;
|
|
1694
|
-
}
|
|
1695
|
-
|
|
1696
|
-
/* Chapter tooltip */
|
|
1697
|
-
.chapter-tooltip {
|
|
1698
|
-
position: absolute;
|
|
1699
|
-
bottom: 100%;
|
|
1700
|
-
left: 0;
|
|
1701
|
-
background: rgba(0, 0, 0, 0.95);
|
|
1702
|
-
backdrop-filter: blur(10px);
|
|
1703
|
-
border-radius: 8px;
|
|
1704
|
-
padding: 0;
|
|
1705
|
-
margin-bottom: 12px;
|
|
1706
|
-
opacity: 0;
|
|
1707
|
-
visibility: hidden;
|
|
1708
|
-
transition: all 0.2s ease;
|
|
1709
|
-
transform: translateX(-50%) translateY(-8px);
|
|
1710
|
-
z-index: 1000;
|
|
1711
|
-
box-shadow: var(--player-shadow-tooltip);
|
|
1712
|
-
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
1713
|
-
min-width: 200px;
|
|
1714
|
-
max-width: 300px;
|
|
1715
|
-
overflow: hidden;
|
|
1716
|
-
pointer-events: none;
|
|
1717
|
-
}
|
|
1718
|
-
|
|
1719
|
-
/* Tooltip arrow */
|
|
1720
|
-
.chapter-tooltip::after {
|
|
1721
|
-
content: '';
|
|
1722
|
-
position: absolute;
|
|
1723
|
-
top: 100%;
|
|
1724
|
-
left: 50%;
|
|
1725
|
-
transform: translateX(-50%);
|
|
1726
|
-
width: 0;
|
|
1727
|
-
height: 0;
|
|
1728
|
-
border-left: 6px solid transparent;
|
|
1729
|
-
border-right: 6px solid transparent;
|
|
1730
|
-
border-top: 6px solid rgba(0, 0, 0, 0.95);
|
|
1731
|
-
}
|
|
1732
|
-
|
|
1733
|
-
/* Chapter tooltip image */
|
|
1734
|
-
.chapter-tooltip-image {
|
|
1735
|
-
width: 100%;
|
|
1736
|
-
height: 150px;
|
|
1737
|
-
background-size: cover;
|
|
1738
|
-
background-position: center;
|
|
1739
|
-
background-repeat: no-repeat;
|
|
1740
|
-
display: none;
|
|
1741
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
1742
|
-
}
|
|
1743
|
-
|
|
1744
|
-
/* Chapter tooltip title */
|
|
1745
|
-
.chapter-tooltip-title {
|
|
1746
|
-
padding: 10px 12px 6px;
|
|
1747
|
-
color: var(--player-text-color);
|
|
1748
|
-
font-size: 14px;
|
|
1749
|
-
font-weight: 600;
|
|
1750
|
-
line-height: 1.3;
|
|
1751
|
-
word-wrap: break-word;
|
|
1752
|
-
}
|
|
1753
|
-
|
|
1754
|
-
/* Chapter tooltip time */
|
|
1755
|
-
.chapter-tooltip-time {
|
|
1756
|
-
padding: 0 12px 10px;
|
|
1757
|
-
color: var(--player-text-secondary);
|
|
1758
|
-
font-size: 12px;
|
|
1759
|
-
font-weight: 400;
|
|
1760
|
-
font-variant-numeric: tabular-nums;
|
|
1761
|
-
}
|
|
1762
|
-
|
|
1763
|
-
/* RESPONSIVE ADJUSTMENTS FOR CHAPTERS */
|
|
1764
|
-
@media (max-width: 480px) {
|
|
1765
|
-
.chapter-marker {
|
|
1766
|
-
width: 2px;
|
|
1767
|
-
}
|
|
1768
|
-
|
|
1769
|
-
.chapter-marker:hover {
|
|
1770
|
-
width: 3px;
|
|
1771
|
-
}
|
|
1772
|
-
|
|
1773
|
-
.chapter-tooltip {
|
|
1774
|
-
min-width: 160px;
|
|
1775
|
-
max-width: 250px;
|
|
1776
|
-
}
|
|
1777
|
-
|
|
1778
|
-
.chapter-tooltip-image {
|
|
1779
|
-
height: 100px;
|
|
1780
|
-
}
|
|
1781
|
-
}
|
|
1782
|
-
/* VIDEO POSTER OVERLAY - THEMED VERSION */
|
|
1783
|
-
|
|
1784
|
-
/* Custom poster overlay to prevent disappearing */
|
|
1785
|
-
.video-poster-overlay {
|
|
1786
|
-
position: absolute;
|
|
1787
|
-
top: 0;
|
|
1788
|
-
left: 0;
|
|
1789
|
-
width: 100%;
|
|
1790
|
-
height: 100%;
|
|
1791
|
-
background-size: cover;
|
|
1792
|
-
background-position: center;
|
|
1793
|
-
background-repeat: no-repeat;
|
|
1794
|
-
z-index: 1;
|
|
1795
|
-
cursor: pointer;
|
|
1796
|
-
opacity: 0;
|
|
1797
|
-
visibility: hidden;
|
|
1798
|
-
transition: opacity 0.3s ease, visibility 0.3s ease;
|
|
1799
|
-
pointer-events: none;
|
|
1800
|
-
}
|
|
1801
|
-
|
|
1802
|
-
/* Visible state */
|
|
1803
|
-
.video-poster-overlay.visible {
|
|
1804
|
-
opacity: 1;
|
|
1805
|
-
visibility: visible;
|
|
1806
|
-
pointer-events: auto;
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
|
-
/* Hidden state */
|
|
1810
|
-
.video-poster-overlay.hidden {
|
|
1811
|
-
opacity: 0;
|
|
1812
|
-
visibility: hidden;
|
|
1813
|
-
pointer-events: none;
|
|
1814
|
-
}
|
|
1815
|
-
|
|
1816
|
-
/* Hover effect on poster */
|
|
1817
|
-
.video-poster-overlay.visible:hover {
|
|
1818
|
-
opacity: 0.95;
|
|
1819
|
-
}
|
|
1820
|
-
|
|
1821
|
-
/* Play button overlay on poster - THEMED COLORS 🎨 */
|
|
1822
|
-
.video-poster-overlay::after {
|
|
1823
|
-
content: '';
|
|
1824
|
-
position: absolute;
|
|
1825
|
-
top: 50%;
|
|
1826
|
-
left: 50%;
|
|
1827
|
-
transform: translate(-50%, -50%);
|
|
1828
|
-
width: 80px;
|
|
1829
|
-
height: 80px;
|
|
1830
|
-
background: rgba(0, 0, 0, 0.7);
|
|
1831
|
-
border-radius: 50%;
|
|
1832
|
-
border: 3px solid var(--player-primary-color); /* THEMED BORDER ✨ */
|
|
1833
|
-
opacity: 0;
|
|
1834
|
-
transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
|
|
1835
|
-
pointer-events: none;
|
|
1836
|
-
}
|
|
1837
|
-
|
|
1838
|
-
/* Show play button on hover with animation and themed glow */
|
|
1839
|
-
.video-poster-overlay.visible:hover::after {
|
|
1840
|
-
opacity: 1;
|
|
1841
|
-
transform: translate(-50%, -50%) scale(1.1);
|
|
1842
|
-
border-color: var(--player-primary-hover); /* THEMED HOVER COLOR 🌟 */
|
|
1843
|
-
box-shadow: 0 0 20px var(--player-primary-color); /* THEMED GLOW 💫 */
|
|
1844
|
-
}
|
|
1845
|
-
|
|
1846
|
-
/* Play icon triangle - THEMED COLOR 🎨 */
|
|
1847
|
-
.video-poster-overlay::before {
|
|
1848
|
-
content: '';
|
|
1849
|
-
position: absolute;
|
|
1850
|
-
top: 50%;
|
|
1851
|
-
left: 50%;
|
|
1852
|
-
transform: translate(-40%, -50%);
|
|
1853
|
-
width: 0;
|
|
1854
|
-
height: 0;
|
|
1855
|
-
border-style: solid;
|
|
1856
|
-
border-width: 15px 0 15px 25px;
|
|
1857
|
-
border-color: transparent transparent transparent var(--player-primary-color); /* THEMED TRIANGLE ✨ */
|
|
1858
|
-
z-index: 2;
|
|
1859
|
-
opacity: 0;
|
|
1860
|
-
transition: opacity 0.3s ease, border-color 0.3s ease;
|
|
1861
|
-
pointer-events: none;
|
|
1862
|
-
}
|
|
1863
|
-
|
|
1864
|
-
/* Show play icon on hover with themed color */
|
|
1865
|
-
.video-poster-overlay.visible:hover::before {
|
|
1866
|
-
opacity: 1;
|
|
1867
|
-
border-color: transparent transparent transparent var(--player-primary-hover); /* THEMED HOVER 🌟 */
|
|
1868
|
-
}
|
|
1869
|
-
|
|
1870
|
-
/* Responsive adjustments */
|
|
1871
|
-
@media (max-width: 768px) {
|
|
1872
|
-
.video-poster-overlay::after {
|
|
1873
|
-
width: 60px;
|
|
1874
|
-
height: 60px;
|
|
1875
|
-
}
|
|
1876
|
-
|
|
1877
|
-
.video-poster-overlay::before {
|
|
1878
|
-
border-width: 12px 0 12px 20px;
|
|
1879
|
-
}
|
|
1880
|
-
}
|
|
1881
|
-
|
|
1882
|
-
@media (max-width: 480px) {
|
|
1883
|
-
.video-poster-overlay::after {
|
|
1884
|
-
width: 50px;
|
|
1885
|
-
height: 50px;
|
|
1886
|
-
}
|
|
1887
|
-
|
|
1888
|
-
.video-poster-overlay::before {
|
|
1889
|
-
border-width: 10px 0 10px 16px;
|
|
1890
|
-
}
|
|
1891
|
-
}
|
|
1892
|
-
|
|
1893
|
-
/* Ensure smooth transition when poster hides */
|
|
1894
|
-
.video-poster-overlay.hidden {
|
|
1895
|
-
transition: opacity 0.5s ease, visibility 0s ease 0.5s;
|
|
1896
|
-
}
|
|
1897
|
-
|
|
1898
|
-
/* THEME-SPECIFIC OVERRIDES (optional fine-tuning) */
|
|
1899
|
-
|
|
1900
|
-
/* Blue theme 💙 */
|
|
1901
|
-
.player-theme-blue .video-poster-overlay::after {
|
|
1902
|
-
border-color: #2196F3;
|
|
1903
|
-
}
|
|
1904
|
-
|
|
1905
|
-
.player-theme-blue .video-poster-overlay.visible:hover::after {
|
|
1906
|
-
border-color: #1976D2;
|
|
1907
|
-
box-shadow: 0 0 20px #2196F3;
|
|
1908
|
-
}
|
|
1909
|
-
|
|
1910
|
-
.player-theme-blue .video-poster-overlay::before {
|
|
1911
|
-
border-color: transparent transparent transparent #2196F3;
|
|
1912
|
-
}
|
|
1913
|
-
|
|
1914
|
-
.player-theme-blue .video-poster-overlay.visible:hover::before {
|
|
1915
|
-
border-color: transparent transparent transparent #1976D2;
|
|
1916
|
-
}
|
|
1917
|
-
|
|
1918
|
-
/* Green theme 💚 */
|
|
1919
|
-
.player-theme-green .video-poster-overlay::after {
|
|
1920
|
-
border-color: #4CAF50;
|
|
1921
|
-
}
|
|
1922
|
-
|
|
1923
|
-
.player-theme-green .video-poster-overlay.visible:hover::after {
|
|
1924
|
-
border-color: #45a049;
|
|
1925
|
-
box-shadow: 0 0 20px #4CAF50;
|
|
1926
|
-
}
|
|
1927
|
-
|
|
1928
|
-
.player-theme-green .video-poster-overlay::before {
|
|
1929
|
-
border-color: transparent transparent transparent #4CAF50;
|
|
1930
|
-
}
|
|
1931
|
-
|
|
1932
|
-
.player-theme-green .video-poster-overlay.visible:hover::before {
|
|
1933
|
-
border-color: transparent transparent transparent #45a049;
|
|
1934
|
-
}
|
|
1935
|
-
|
|
1936
|
-
/* Red theme ❤️ */
|
|
1937
|
-
.player-theme-red .video-poster-overlay::after {
|
|
1938
|
-
border-color: #f44336;
|
|
1939
|
-
}
|
|
1940
|
-
|
|
1941
|
-
.player-theme-red .video-poster-overlay.visible:hover::after {
|
|
1942
|
-
border-color: #d32f2f;
|
|
1943
|
-
box-shadow: 0 0 20px #f44336;
|
|
1944
|
-
}
|
|
1945
|
-
|
|
1946
|
-
.player-theme-red .video-poster-overlay::before {
|
|
1947
|
-
border-color: transparent transparent transparent #f44336;
|
|
1948
|
-
}
|
|
1949
|
-
|
|
1950
|
-
.player-theme-red .video-poster-overlay.visible:hover::before {
|
|
1951
|
-
border-color: transparent transparent transparent #d32f2f;
|
|
1952
|
-
}
|
|
1953
|
-
|
|
1954
|
-
/* Dark theme 🖤 (uses default goldenrod) */
|
|
1955
|
-
.player-theme-dark .video-poster-overlay::after {
|
|
1956
|
-
background: rgba(0, 0, 0, 0.85); /* Slightly darker background for dark theme */
|
|
1957
|
-
}
|
|
1958
|
-
|
|
1959
|
-
/* screen height adjust */
|
|
1960
|
-
@media (max-height: 400px) {
|
|
1961
|
-
.video-player {
|
|
1962
|
-
min-height: 200px;
|
|
1963
|
-
}
|
|
1964
|
-
|
|
1965
|
-
.controls {
|
|
1966
|
-
min-height: 50px !important;
|
|
1967
|
-
padding: 10px 10px 8px !important;
|
|
1968
|
-
}
|
|
1969
|
-
|
|
1970
|
-
.progress-container {
|
|
1971
|
-
margin-bottom: 8px;
|
|
1972
|
-
}
|
|
1973
|
-
|
|
1974
|
-
.controls-main {
|
|
1975
|
-
min-height: 32px !important;
|
|
1976
|
-
}
|
|
1977
|
-
}
|
|
1978
|
-
|
|
1979
|
-
@media (max-height: 330px) {
|
|
1980
|
-
.video-player {
|
|
1981
|
-
min-height: 150px;
|
|
1982
|
-
}
|
|
1983
|
-
|
|
1984
|
-
.controls {
|
|
1985
|
-
min-height: 45px !important;
|
|
1986
|
-
padding: 8px 8px 6px !important;
|
|
1987
|
-
}
|
|
1988
|
-
|
|
1989
|
-
.progress-container {
|
|
1990
|
-
margin-bottom: 6px;
|
|
1991
|
-
height: 4px;
|
|
1992
|
-
}
|
|
1993
|
-
|
|
1994
|
-
.controls-main {
|
|
1995
|
-
min-height: 28px !important;
|
|
1996
|
-
}
|
|
1997
|
-
|
|
1998
|
-
.control-btn {
|
|
1999
|
-
padding: 4px !important;
|
|
2000
|
-
}
|
|
2001
|
-
|
|
2002
|
-
.icon {
|
|
2003
|
-
font-size: 14px !important;
|
|
2004
|
-
}
|
|
2005
|
-
|
|
2006
|
-
.time-display {
|
|
2007
|
-
font-size: 11px !important;
|
|
2008
|
-
}
|
|
2009
|
-
}
|
|
2010
|
-
|
|
2011
|
-
@media (max-height: 250px) {
|
|
2012
|
-
.video-player {
|
|
2013
|
-
min-height: 120px;
|
|
2014
|
-
}
|
|
2015
|
-
|
|
2016
|
-
.controls {
|
|
2017
|
-
min-height: 40px !important;
|
|
2018
|
-
padding: 6px 8px 5px !important;
|
|
2019
|
-
}
|
|
2020
|
-
|
|
2021
|
-
.progress-container {
|
|
2022
|
-
margin-bottom: 4px;
|
|
2023
|
-
height: 3px;
|
|
2024
|
-
}
|
|
2025
|
-
|
|
2026
|
-
.controls-main {
|
|
2027
|
-
min-height: 24px !important;
|
|
2028
|
-
}
|
|
2029
|
-
|
|
2030
|
-
.control-btn {
|
|
2031
|
-
padding: 2px !important;
|
|
2032
|
-
}
|
|
2033
|
-
|
|
2034
|
-
.icon {
|
|
2035
|
-
font-size: 12px !important;
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
.time-display {
|
|
2039
|
-
font-size: 10px !important;
|
|
2040
|
-
}
|
|
2041
|
-
|
|
2042
|
-
.quality-btn {
|
|
2043
|
-
min-height: 20px !important;
|
|
2044
|
-
padding: 2px 4px !important;
|
|
2045
|
-
}
|
|
2046
|
-
|
|
2047
|
-
.selected-quality {
|
|
2048
|
-
font-size: 9px !important;
|
|
2049
|
-
}
|
|
2050
|
-
|
|
2051
|
-
.current-quality {
|
|
2052
|
-
display: none;
|
|
2053
|
-
}
|
|
2054
|
-
|
|
2055
|
-
.volume-slider {
|
|
2056
|
-
width: 40px !important;
|
|
313
|
+
/* Desktop hover - subtle enlargement */
|
|
314
|
+
@media (hover: hover) and (pointer: fine) {
|
|
315
|
+
.progress-container:hover .progress-bar {
|
|
316
|
+
height: calc(var(--player-progress-height) * 1.3);
|
|
317
|
+
transition: height 0.15s ease;
|
|
2057
318
|
}
|
|
2058
|
-
}
|
|
2059
|
-
|
|
2060
|
-
.video-container,
|
|
2061
|
-
.video-wrapper {
|
|
2062
|
-
overflow: visible !important;
|
|
2063
|
-
}
|
|
2064
|
-
|
|
2065
|
-
.controls.show {
|
|
2066
|
-
position: absolute !important;
|
|
2067
|
-
bottom: 0 !important;
|
|
2068
|
-
overflow: visible !important;
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
/* ===================================
|
|
2072
|
-
WATERMARK OVERLAY
|
|
2073
|
-
=================================== */
|
|
2074
|
-
|
|
2075
|
-
.video-watermark {
|
|
2076
|
-
position: absolute;
|
|
2077
|
-
z-index: 15; /* Above video (10), below controls (100) */
|
|
2078
|
-
pointer-events: auto;
|
|
2079
|
-
opacity: 0.7;
|
|
2080
|
-
transition: opacity 0.3s ease, visibility 0.3s ease, bottom 0.3s ease;
|
|
2081
|
-
}
|
|
2082
|
-
|
|
2083
|
-
/* Watermark visible by default */
|
|
2084
|
-
.video-watermark {
|
|
2085
|
-
visibility: visible;
|
|
2086
|
-
opacity: 0.7;
|
|
2087
|
-
}
|
|
2088
|
-
|
|
2089
|
-
/* Hide watermark when it has hide-on-autohide class AND controls are hidden */
|
|
2090
|
-
.video-wrapper:not(.has-controls) .video-watermark.hide-on-autohide {
|
|
2091
|
-
visibility: hidden;
|
|
2092
|
-
opacity: 0;
|
|
2093
|
-
}
|
|
2094
|
-
|
|
2095
|
-
/* Show watermark when controls are shown */
|
|
2096
|
-
.video-wrapper.has-controls .video-watermark {
|
|
2097
|
-
visibility: visible;
|
|
2098
|
-
opacity: 0.7;
|
|
2099
|
-
}
|
|
2100
|
-
|
|
2101
|
-
.video-watermark:hover {
|
|
2102
|
-
opacity: 1;
|
|
2103
|
-
}
|
|
2104
|
-
|
|
2105
|
-
.video-watermark img {
|
|
2106
|
-
display: block;
|
|
2107
|
-
max-width: 150px;
|
|
2108
|
-
max-height: 80px;
|
|
2109
|
-
width: auto;
|
|
2110
|
-
height: auto;
|
|
2111
|
-
object-fit: contain;
|
|
2112
|
-
}
|
|
2113
|
-
|
|
2114
|
-
/* Watermark positions - Top positions unchanged */
|
|
2115
|
-
.video-watermark.watermark-topleft {
|
|
2116
|
-
top: 15px;
|
|
2117
|
-
left: 15px;
|
|
2118
|
-
}
|
|
2119
|
-
|
|
2120
|
-
.video-watermark.watermark-topright {
|
|
2121
|
-
top: 15px;
|
|
2122
|
-
right: 15px;
|
|
2123
|
-
}
|
|
2124
|
-
|
|
2125
|
-
/* Bottom positions - Increased spacing from controlbar (was 70px, now 90px) */
|
|
2126
|
-
.video-watermark.watermark-bottomleft {
|
|
2127
|
-
bottom: 90px; /* Increased spacing */
|
|
2128
|
-
left: 15px;
|
|
2129
|
-
}
|
|
2130
|
-
|
|
2131
|
-
.video-watermark.watermark-bottomright {
|
|
2132
|
-
bottom: 90px; /* Increased spacing */
|
|
2133
|
-
right: 15px;
|
|
2134
|
-
}
|
|
2135
|
-
|
|
2136
|
-
/* DYNAMIC POSITIONING: Always visible watermark moves down when controls are hidden */
|
|
2137
|
-
/* This applies ONLY to watermarks without hide-on-autohide class (always visible) */
|
|
2138
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomleft:not(.hide-on-autohide) {
|
|
2139
|
-
bottom: 15px; /* Move to bottom corner when controls hidden */
|
|
2140
|
-
}
|
|
2141
|
-
|
|
2142
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomright:not(.hide-on-autohide) {
|
|
2143
|
-
bottom: 15px; /* Move to bottom corner when controls hidden */
|
|
2144
|
-
}
|
|
2145
|
-
|
|
2146
|
-
/* When controls are shown, bottom watermark stays above controlbar */
|
|
2147
|
-
.video-wrapper.has-controls .video-watermark.watermark-bottomleft,
|
|
2148
|
-
.video-wrapper.has-controls .video-watermark.watermark-bottomright {
|
|
2149
|
-
bottom: 90px; /* Stay above controlbar */
|
|
2150
|
-
}
|
|
2151
|
-
|
|
2152
|
-
/* Responsive adjustments for mobile */
|
|
2153
|
-
@media (max-width: 768px) {
|
|
2154
|
-
.video-watermark img {
|
|
2155
|
-
max-width: 100px;
|
|
2156
|
-
max-height: 50px;
|
|
2157
|
-
}
|
|
2158
|
-
|
|
2159
|
-
.video-watermark.watermark-topleft,
|
|
2160
|
-
.video-watermark.watermark-topright {
|
|
2161
|
-
top: 10px;
|
|
2162
|
-
}
|
|
2163
|
-
|
|
2164
|
-
.video-watermark.watermark-topleft,
|
|
2165
|
-
.video-watermark.watermark-bottomleft {
|
|
2166
|
-
left: 10px;
|
|
2167
|
-
}
|
|
2168
|
-
|
|
2169
|
-
.video-watermark.watermark-topright,
|
|
2170
|
-
.video-watermark.watermark-bottomright {
|
|
2171
|
-
right: 10px;
|
|
2172
|
-
}
|
|
2173
|
-
|
|
2174
|
-
/* Bottom spacing adjusted for mobile */
|
|
2175
|
-
.video-watermark.watermark-bottomleft,
|
|
2176
|
-
.video-watermark.watermark-bottomright {
|
|
2177
|
-
bottom: 75px; /* Above controlbar on mobile */
|
|
2178
|
-
}
|
|
2179
|
-
|
|
2180
|
-
/* Always visible watermark on mobile - moves down when controls hidden */
|
|
2181
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomleft:not(.hide-on-autohide),
|
|
2182
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomright:not(.hide-on-autohide) {
|
|
2183
|
-
bottom: 10px; /* Move to corner on mobile */
|
|
2184
|
-
}
|
|
2185
|
-
}
|
|
2186
|
-
|
|
2187
|
-
/* Extra small screens */
|
|
2188
|
-
@media (max-width: 480px) {
|
|
2189
|
-
.video-watermark.watermark-bottomleft,
|
|
2190
|
-
.video-watermark.watermark-bottomright {
|
|
2191
|
-
bottom: 65px;
|
|
2192
|
-
}
|
|
2193
|
-
|
|
2194
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomleft:not(.hide-on-autohide),
|
|
2195
|
-
.video-wrapper:not(.has-controls) .video-watermark.watermark-bottomright:not(.hide-on-autohide) {
|
|
2196
|
-
bottom: 8px;
|
|
2197
|
-
}
|
|
2198
|
-
}
|
|
2199
|
-
|
|
2200
|
-
/* Clickable watermark cursor */
|
|
2201
|
-
.video-watermark[style*="cursor: pointer"] {
|
|
2202
|
-
cursor: pointer !important;
|
|
2203
|
-
}
|
|
319
|
+
}
|