eb-player 2.0.1 → 2.0.4

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.
Files changed (42) hide show
  1. package/dist/build/eb-player.css +792 -9
  2. package/dist/build/ebplayer.bundle.js +215 -60
  3. package/dist/build/ebplayer.bundle.js.map +1 -1
  4. package/dist/build/theme-forja.css +1 -1
  5. package/dist/build/theme-lequipe.css +767 -0
  6. package/dist/build/theme-modern.css +1 -1
  7. package/dist/build/theme-v2.css +1 -1
  8. package/dist/build/types/core/config.d.ts +14 -2
  9. package/dist/build/types/core/config.d.ts.map +1 -1
  10. package/dist/build/types/core/i18n.d.ts.map +1 -1
  11. package/dist/build/types/core/index.d.ts +1 -1
  12. package/dist/build/types/core/index.d.ts.map +1 -1
  13. package/dist/build/types/core/lifecycle.d.ts.map +1 -1
  14. package/dist/build/types/eb-player-standalone.d.ts +14 -3
  15. package/dist/build/types/eb-player-standalone.d.ts.map +1 -1
  16. package/dist/build/types/engines/hls.d.ts +1 -0
  17. package/dist/build/types/engines/hls.d.ts.map +1 -1
  18. package/dist/build/types/engines/snapshot/hls.d.ts +1 -1
  19. package/dist/build/types/engines/snapshot/hls.d.ts.map +1 -1
  20. package/dist/build/types/integrations/p2p-manager.d.ts.map +1 -1
  21. package/dist/build/types/skin/controls/seekbar.d.ts.map +1 -1
  22. package/dist/build/types/skin/controls/settings-panel.d.ts +8 -0
  23. package/dist/build/types/skin/controls/settings-panel.d.ts.map +1 -1
  24. package/dist/dev/default.js +734 -508
  25. package/dist/dev/default.js.map +1 -1
  26. package/dist/dev/easybroadcast.js +266 -88
  27. package/dist/dev/easybroadcast.js.map +1 -1
  28. package/dist/dev/equipe.js +6683 -0
  29. package/dist/dev/equipe.js.map +1 -0
  30. package/dist/eb-player.css +792 -9
  31. package/dist/players/easybroadcast/easybroadcast.js +397 -0
  32. package/dist/players/easybroadcast/index.html +1 -0
  33. package/dist/players/equipe/EB_lequipe-preprod.js +385 -0
  34. package/dist/players/equipe/equipe.js +385 -0
  35. package/dist/players/equipe/index.html +1 -0
  36. package/dist/players/forja/forja.js +198 -111
  37. package/dist/players/forja/index.html +1 -1
  38. package/dist/theme-forja.css +1 -1
  39. package/dist/theme-lequipe.css +767 -0
  40. package/dist/theme-modern.css +1 -1
  41. package/dist/theme-v2.css +1 -1
  42. package/package.json +8 -73
@@ -53,7 +53,775 @@
53
53
  */
54
54
 
55
55
  [data-theme="forja"] .eb-player {
56
- --eb-color-primary: #E63946;
56
+ --eb-color-primary: #FC013B;
57
+ }
58
+
59
+ /**
60
+ * L'Equipe theme — v2 layout with L'Equipe red (#d61e00) accent
61
+ *
62
+ * Applied when the container has [data-theme="lequipe"].
63
+ * Dark UI with red accent, Inter font, rounded container,
64
+ * backdrop-blur panels, expandable volume, single-row bottom bar,
65
+ * gradient overlays, centered frosted-glass transport circles,
66
+ * and refined slide/fade animations.
67
+ */
68
+
69
+ /* ============================================================
70
+ Google Fonts (Inter 300-700)
71
+ ============================================================ */
72
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
73
+
74
+ /* ============================================================
75
+ Root vars & container
76
+ ============================================================ */
77
+ [data-theme="lequipe"] .eb-player {
78
+ --eb-color-primary: #d61e00;
79
+ --eb-color-progress: #d61e00;
80
+ --eb-color-background: rgba(10, 10, 20, 0.85);
81
+ --eb-accent: #d61e00;
82
+ --eb-color-text: #fff;
83
+ --eb-font-family: 'Inter', -apple-system, sans-serif;
84
+ --eb-font-size-base: 14px;
85
+ --eb-radius-control: 8px;
86
+ --eb-duration-transition: 200ms;
87
+ font-family: 'Inter', -apple-system, sans-serif;
88
+ border-radius: 0;
89
+ box-shadow: none;
90
+ color: #fff;
91
+ }
92
+
93
+ /* ============================================================
94
+ Icons: bolder stroke weight to match filled-style target
95
+ ============================================================ */
96
+ [data-theme="lequipe"] .eb-player .eb-icon {
97
+ stroke-width: 2.5;
98
+ }
99
+
100
+ /* Fullscreen: fill viewport, drop card styling */
101
+ [data-theme="lequipe"] .eb-player:fullscreen,
102
+ [data-theme="lequipe"] .eb-player:-webkit-full-screen {
103
+ border-radius: 0;
104
+ box-shadow: none;
105
+ }
106
+
107
+ /* ============================================================
108
+ Gradients (top & bottom)
109
+ ============================================================ */
110
+ [data-theme="lequipe"] .eb-player .eb-top-bar {
111
+ background: linear-gradient(to bottom, rgba(0,0,0,.72), transparent);
112
+ height: 110px;
113
+ padding: 14px 16px;
114
+ gap: 6px;
115
+ }
116
+
117
+ [data-theme="lequipe"] .eb-player .eb-bottom-bar__gradient {
118
+ height: 150px;
119
+ background: linear-gradient(to top, rgba(0,0,0,.9), transparent);
120
+ }
121
+
122
+ /* ============================================================
123
+ Top bar: slide-in from above
124
+ ============================================================ */
125
+ [data-theme="lequipe"] .eb-player.eb-controls-visible .eb-top-bar {
126
+ opacity: 1;
127
+ transform: translateY(0);
128
+ transition: opacity .3s, transform .3s;
129
+ }
130
+
131
+ [data-theme="lequipe"] .eb-player.eb-controls-hidden .eb-top-bar {
132
+ opacity: 0;
133
+ transform: translateY(-6px);
134
+ transition: opacity .3s, transform .3s;
135
+ }
136
+
137
+ [data-theme="lequipe"] .eb-player .eb-top-bar__actions {
138
+ gap: 6px;
139
+ }
140
+
141
+ /* Logo */
142
+ [data-theme="lequipe"] .eb-player .eb-top-bar__logo {
143
+ max-height: 32px;
144
+ max-width: 120px;
145
+ opacity: .85;
146
+ }
147
+
148
+ /* ============================================================
149
+ Bottom bar: slide-up animation + spacing
150
+ ============================================================ */
151
+ [data-theme="lequipe"] .eb-player .eb-bottom-bar__controls-row {
152
+ padding: 0 14px 12px;
153
+ gap: 8px;
154
+ }
155
+
156
+ [data-theme="lequipe"] .eb-player.eb-controls-visible .eb-bottom-bar {
157
+ opacity: 1;
158
+ transform: translateY(0);
159
+ transition: opacity .3s, transform .3s;
160
+ }
161
+
162
+ [data-theme="lequipe"] .eb-player.eb-controls-hidden .eb-bottom-bar {
163
+ opacity: 0;
164
+ transform: translateY(8px);
165
+ transition: opacity .3s, transform .3s;
166
+ }
167
+
168
+ /* ============================================================
169
+ Middle bar: glassmorphism transport circles
170
+ ============================================================ */
171
+ [data-theme="lequipe"] .eb-player .eb-middle-bar {
172
+ gap: 28px;
173
+ }
174
+
175
+ [data-theme="lequipe"] .eb-player.eb-controls-visible .eb-middle-bar {
176
+ opacity: 1;
177
+ transition: opacity .3s;
178
+ }
179
+
180
+ [data-theme="lequipe"] .eb-player.eb-controls-hidden .eb-middle-bar {
181
+ opacity: 0;
182
+ transition: opacity .3s;
183
+ }
184
+
185
+ /* Central play/pause — large frosted circle */
186
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__play-btn {
187
+ width: 80px;
188
+ height: 80px;
189
+ border-radius: 50%;
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ background: rgba(255,255,255,.15);
194
+ backdrop-filter: blur(8px);
195
+ -webkit-backdrop-filter: blur(8px);
196
+ border: 2px solid rgba(255,255,255,.25);
197
+ color: #fff;
198
+ padding: 0;
199
+ transition: background .15s, transform .25s, opacity .25s;
200
+ }
201
+
202
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__play-btn:hover {
203
+ background: rgba(255,255,255,.25);
204
+ }
205
+
206
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__play-btn:active {
207
+ transform: scale(.92);
208
+ }
209
+
210
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__play-btn .eb-icon {
211
+ width: 32px;
212
+ height: 32px;
213
+ stroke-width: 2.5;
214
+ }
215
+
216
+ /* Seek buttons — smaller frosted circles */
217
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__seek-btn {
218
+ width: 56px;
219
+ height: 56px;
220
+ border-radius: 50%;
221
+ display: flex;
222
+ flex-direction: column;
223
+ align-items: center;
224
+ justify-content: center;
225
+ background: rgba(255,255,255,.15);
226
+ backdrop-filter: blur(8px);
227
+ -webkit-backdrop-filter: blur(8px);
228
+ border: 2px solid rgba(255,255,255,.25);
229
+ color: #fff;
230
+ gap: 1px;
231
+ padding: 0;
232
+ transition: background .15s;
233
+ }
234
+
235
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__seek-btn:hover {
236
+ background: rgba(255,255,255,.25);
237
+ }
238
+
239
+ [data-theme="lequipe"] .eb-player .eb-seek-circle {
240
+ width: 24px;
241
+ height: 24px;
242
+ color: rgba(255,255,255,.85);
243
+ fill: currentColor;
244
+ stroke: none;
245
+ }
246
+
247
+ [data-theme="lequipe"] .eb-player .eb-seek-label {
248
+ font-size: .75em;
249
+ font-weight: 700;
250
+ color: rgba(255,255,255,.9);
251
+ line-height: 1;
252
+ }
253
+
254
+ /* ============================================================
255
+ Buttons: rounded, soft color, scale on press
256
+ ============================================================ */
257
+ [data-theme="lequipe"] .eb-player .eb-button:not(.eb-middle-bar__seek-btn):not(.eb-middle-bar__play-btn),
258
+ [data-theme="lequipe"] .eb-player .eb-play-pause,
259
+ [data-theme="lequipe"] .eb-player .eb-fullscreen,
260
+ [data-theme="lequipe"] .eb-player .eb-pip,
261
+ [data-theme="lequipe"] .eb-player .eb-cast,
262
+ [data-theme="lequipe"] .eb-player .eb-volume-mute,
263
+ [data-theme="lequipe"] .eb-player .eb-live-sync {
264
+ color: rgba(255,255,255,.82);
265
+ border-radius: 8px;
266
+ width: 38px;
267
+ height: 38px;
268
+ transition: background .15s, color .15s, transform .1s;
269
+ flex-shrink: 0;
270
+ }
271
+
272
+ [data-theme="lequipe"] .eb-player .eb-button:not(.eb-middle-bar__seek-btn):not(.eb-middle-bar__play-btn):hover,
273
+ [data-theme="lequipe"] .eb-player .eb-play-pause:hover,
274
+ [data-theme="lequipe"] .eb-player .eb-fullscreen:hover,
275
+ [data-theme="lequipe"] .eb-player .eb-pip:hover,
276
+ [data-theme="lequipe"] .eb-player .eb-cast:hover,
277
+ [data-theme="lequipe"] .eb-player .eb-volume-mute:hover,
278
+ [data-theme="lequipe"] .eb-player .eb-live-sync:hover {
279
+ background: rgba(255,255,255,.12);
280
+ color: #fff;
281
+ }
282
+
283
+ [data-theme="lequipe"] .eb-player .eb-button:not(.eb-middle-bar__seek-btn):not(.eb-middle-bar__play-btn):active,
284
+ [data-theme="lequipe"] .eb-player .eb-play-pause:active,
285
+ [data-theme="lequipe"] .eb-player .eb-fullscreen:active,
286
+ [data-theme="lequipe"] .eb-player .eb-pip:active,
287
+ [data-theme="lequipe"] .eb-player .eb-cast:active,
288
+ [data-theme="lequipe"] .eb-player .eb-volume-mute:active,
289
+ [data-theme="lequipe"] .eb-player .eb-live-sync:active {
290
+ transform: scale(.88);
291
+ }
292
+
293
+ /* Icon size inside buttons (not middle bar transport) */
294
+ [data-theme="lequipe"] .eb-player .eb-button:not(.eb-middle-bar__seek-btn):not(.eb-middle-bar__play-btn) .eb-icon,
295
+ [data-theme="lequipe"] .eb-player .eb-play-pause .eb-icon,
296
+ [data-theme="lequipe"] .eb-player .eb-fullscreen .eb-icon,
297
+ [data-theme="lequipe"] .eb-player .eb-pip .eb-icon,
298
+ [data-theme="lequipe"] .eb-player .eb-cast .eb-icon,
299
+ [data-theme="lequipe"] .eb-player .eb-volume-mute .eb-icon {
300
+ width: 22px;
301
+ height: 22px;
302
+ }
303
+
304
+ /* Top bar icons slightly larger */
305
+ [data-theme="lequipe"] .eb-player .eb-top-bar .eb-icon {
306
+ width: 24px;
307
+ height: 24px;
308
+ }
309
+
310
+ /* Play/pause icons should be filled (solid), not stroke outlines */
311
+ [data-theme="lequipe"] .eb-player .eb-play-pause .eb-icon,
312
+ [data-theme="lequipe"] .eb-player .eb-middle-bar__play-btn .eb-icon {
313
+ fill: currentColor;
314
+ stroke: none;
315
+ }
316
+
317
+ /* Volume icon: fill the speaker body, keep stroke for sound waves */
318
+ [data-theme="lequipe"] .eb-player .eb-volume-mute .eb-icon path:first-child {
319
+ fill: currentColor;
320
+ }
321
+
322
+ /* Cast button active state */
323
+ [data-theme="lequipe"] .eb-player .eb-cast-active {
324
+ color: #1eb6d4 !important;
325
+ background: rgba(30, 182, 212, .15) !important;
326
+ }
327
+
328
+ [data-theme="lequipe"] .eb-player .eb-cast-active .eb-icon {
329
+ filter: drop-shadow(0 0 4px rgba(30, 182, 212, .6));
330
+ }
331
+
332
+ /* ============================================================
333
+ Seekbar
334
+ ============================================================ */
335
+ [data-theme="lequipe"] .eb-player .eb-seekbar-track {
336
+ height: 3px;
337
+ background: rgba(255,255,255,.22);
338
+ border-radius: 3px;
339
+ transition: height .15s;
340
+ }
341
+
342
+ [data-theme="lequipe"] .eb-player .eb-seekbar:hover .eb-seekbar-track {
343
+ height: 5px;
344
+ }
345
+
346
+ [data-theme="lequipe"] .eb-player .eb-seekbar-buffered {
347
+ background: rgba(255,255,255,.28);
348
+ border-radius: 3px;
349
+ transition: height .15s;
350
+ }
351
+
352
+ /* Solid red fill */
353
+ [data-theme="lequipe"] .eb-player .eb-seekbar-progress {
354
+ background: #d61e00;
355
+ border-radius: 3px;
356
+ transition: height .15s;
357
+ }
358
+
359
+ [data-theme="lequipe"] .eb-player .eb-seekbar-thumb {
360
+ width: 14px;
361
+ height: 14px;
362
+ right: -7px;
363
+ background: #fff;
364
+ box-shadow: 0 0 0 3px rgba(214,30,0,.45);
365
+ }
366
+
367
+ /* ============================================================
368
+ Seekbar tooltip & preview
369
+ ============================================================ */
370
+ [data-theme="lequipe"] .eb-player .eb-seekbar-tooltip {
371
+ bottom: 28px;
372
+ background: rgba(0,0,0,.88);
373
+ border: 1px solid rgba(255,255,255,.12);
374
+ border-radius: 7px;
375
+ font-size: 11px;
376
+ font-weight: 500;
377
+ padding: 0;
378
+ overflow: hidden;
379
+ box-shadow: 0 4px 16px rgba(0,0,0,.5);
380
+ display: flex;
381
+ flex-direction: column;
382
+ align-items: center;
383
+ }
384
+
385
+ [data-theme="lequipe"] .eb-player .eb-seekbar-preview {
386
+ width: 160px;
387
+ height: 90px;
388
+ background: #111;
389
+ border: none;
390
+ border-radius: 0;
391
+ margin: 0;
392
+ }
393
+
394
+ /* ============================================================
395
+ Chapter markers
396
+ ============================================================ */
397
+ [data-theme="lequipe"] .eb-player .eb-chapter-marker {
398
+ width: 2px;
399
+ height: 7px;
400
+ background: rgba(0,0,0,.45);
401
+ border-radius: 1px;
402
+ top: 50%;
403
+ transform: translate(-50%, -50%);
404
+ }
405
+
406
+ /* ============================================================
407
+ Volume: expandable slider, white fill
408
+ ============================================================ */
409
+ [data-theme="lequipe"] .eb-player .eb-volume-control {
410
+ flex-direction: row;
411
+ gap: 0;
412
+ margin-right: 0;
413
+ }
414
+
415
+ [data-theme="lequipe"] .eb-player .eb-volume-track {
416
+ width: 0;
417
+ height: 3px;
418
+ background: rgba(255,255,255,.22);
419
+ border-radius: 3px;
420
+ overflow: hidden;
421
+ transition: width .25s ease, margin .25s ease;
422
+ margin: 0;
423
+ }
424
+
425
+ [data-theme="lequipe"] .eb-player .eb-volume-control:hover .eb-volume-track,
426
+ [data-theme="lequipe"] .eb-player .eb-volume-control:focus-within .eb-volume-track {
427
+ width: 66px;
428
+ margin: 0 6px 0 2px;
429
+ }
430
+
431
+ [data-theme="lequipe"] .eb-player .eb-volume-fill {
432
+ background: var(--eb-color-primary, #d61e00);
433
+ }
434
+
435
+ [data-theme="lequipe"] .eb-player .eb-volume-thumb {
436
+ width: 11px;
437
+ height: 11px;
438
+ background: #fff;
439
+ box-shadow: 0 0 0 2px rgba(255,255,255,.35);
440
+ transform: translate(-50%, -50%) scale(0);
441
+ transition: transform .15s;
442
+ }
443
+
444
+ [data-theme="lequipe"] .eb-player .eb-volume-control:hover .eb-volume-thumb {
445
+ transform: translate(-50%, -50%) scale(1);
446
+ }
447
+
448
+ /* ============================================================
449
+ Time display
450
+ ============================================================ */
451
+ [data-theme="lequipe"] .eb-player .eb-time-display {
452
+ font-size: 13px;
453
+ color: rgba(255,255,255,.85);
454
+ font-weight: 500;
455
+ letter-spacing: .02em;
456
+ }
457
+
458
+ /* ============================================================
459
+ Live badge — text badge with blinking dot (not icon)
460
+ ============================================================ */
461
+ [data-theme="lequipe"] .eb-player .eb-live-sync {
462
+ width: auto;
463
+ height: auto;
464
+ padding: 4px 10px;
465
+ border-radius: 6px;
466
+ font-size: 11px;
467
+ font-weight: 700;
468
+ letter-spacing: .08em;
469
+ text-transform: uppercase;
470
+ gap: 5px;
471
+ }
472
+
473
+ /* Hide icon, show dot + label */
474
+ [data-theme="lequipe"] .eb-player .eb-live-sync__icon {
475
+ display: none;
476
+ }
477
+
478
+ [data-theme="lequipe"] .eb-player .eb-live-sync__dot {
479
+ display: block;
480
+ width: 6px;
481
+ height: 6px;
482
+ border-radius: 50%;
483
+ background: #fff;
484
+ flex-shrink: 0;
485
+ }
486
+
487
+ [data-theme="lequipe"] .eb-player .eb-live-sync__label {
488
+ display: block;
489
+ }
490
+
491
+ /* Synced state — red background with blinking dot */
492
+ [data-theme="lequipe"] .eb-player .eb-live-synced {
493
+ background: rgba(214,30,0,.9);
494
+ color: #fff;
495
+ box-shadow: 0 2px 8px rgba(214,30,0,.4);
496
+ }
497
+
498
+ [data-theme="lequipe"] .eb-player .eb-live-synced .eb-live-sync__dot {
499
+ animation: eb-lequipe-blink 1.2s ease infinite;
500
+ }
501
+
502
+ /* Delayed / not-at-live-edge */
503
+ [data-theme="lequipe"] .eb-player .eb-live-sync:not(.eb-live-synced) {
504
+ background: rgba(60,60,80,.75);
505
+ color: rgba(255,255,255,.7);
506
+ box-shadow: none;
507
+ }
508
+
509
+ [data-theme="lequipe"] .eb-player .eb-live-sync:not(.eb-live-synced) .eb-live-sync__dot {
510
+ background: rgba(255,255,255,.5);
511
+ animation: none;
512
+ }
513
+
514
+ [data-theme="lequipe"] .eb-player .eb-live-sync:not(.eb-live-synced):hover {
515
+ background: rgba(214,30,0,.7);
516
+ color: #fff;
517
+ }
518
+
519
+ @keyframes eb-lequipe-blink {
520
+ 0%, 100% { opacity: 1; }
521
+ 50% { opacity: .15; }
522
+ }
523
+
524
+ /* ============================================================
525
+ Settings panel: glassmorphism dropdown
526
+ ============================================================ */
527
+ [data-theme="lequipe"] .eb-player .eb-settings-panel {
528
+ background: rgba(30,30,45,.6);
529
+ backdrop-filter: blur(24px) saturate(160%);
530
+ -webkit-backdrop-filter: blur(24px) saturate(160%);
531
+ border-radius: 14px;
532
+ width: min(340px, 80vw);
533
+ max-height: 60vh;
534
+ overflow-y: auto;
535
+ overflow-x: hidden;
536
+ box-shadow: 0 16px 48px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08);
537
+ }
538
+
539
+ /* Small viewports: compact rows */
540
+ @media (max-height: 400px) {
541
+ [data-theme="lequipe"] .eb-player .eb-settings-category { padding: 12px 14px; font-size: 13px; gap: 10px; }
542
+ [data-theme="lequipe"] .eb-player .eb-settings-item { padding: 11px 14px; font-size: 13px; }
543
+ [data-theme="lequipe"] .eb-player .eb-settings-header { padding: 10px 14px; }
544
+ [data-theme="lequipe"] .eb-player .eb-settings-panel { min-width: 220px; border-radius: 10px; }
545
+ [data-theme="lequipe"] .eb-player .eb-settings-back { width: 30px; height: 30px; }
546
+ }
547
+
548
+ [data-theme="lequipe"] .eb-player .eb-settings-menu {
549
+ padding: 0;
550
+ }
551
+
552
+ /* Root menu category rows — icon | label | value | chevron */
553
+ [data-theme="lequipe"] .eb-player .eb-settings-category {
554
+ display: flex;
555
+ align-items: center;
556
+ gap: 14px;
557
+ padding: 18px 20px;
558
+ font-size: 14px;
559
+ color: rgba(255,255,255,.95);
560
+ border-bottom: 1px solid rgba(255,255,255,.06);
561
+ transition: background .12s;
562
+ width: 100%;
563
+ border: none;
564
+ background: none;
565
+ cursor: pointer;
566
+ text-align: left;
567
+ }
568
+
569
+ [data-theme="lequipe"] .eb-player .eb-settings-category:last-child {
570
+ border-bottom: none;
571
+ }
572
+
573
+ [data-theme="lequipe"] .eb-player .eb-settings-category:hover {
574
+ background: rgba(255,255,255,.05);
575
+ }
576
+
577
+ [data-theme="lequipe"] .eb-player .eb-settings-category__icon {
578
+ flex-shrink: 0;
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: center;
582
+ color: rgba(255,255,255,.6);
583
+ }
584
+
585
+ [data-theme="lequipe"] .eb-player .eb-settings-category__icon .eb-icon {
586
+ width: 22px;
587
+ height: 22px;
588
+ }
589
+
590
+ [data-theme="lequipe"] .eb-player .eb-settings-category__label {
591
+ flex: 1;
592
+ font-weight: 400;
593
+ }
594
+
595
+ [data-theme="lequipe"] .eb-player .eb-settings-category__value {
596
+ color: rgba(255,255,255,.45);
597
+ font-size: 13px;
598
+ font-weight: 400;
599
+ }
600
+
601
+ [data-theme="lequipe"] .eb-player .eb-settings-category__chevron {
602
+ flex-shrink: 0;
603
+ display: flex;
604
+ align-items: center;
605
+ color: rgba(255,255,255,.3);
606
+ }
607
+
608
+ [data-theme="lequipe"] .eb-player .eb-settings-category__chevron .eb-icon {
609
+ width: 16px;
610
+ height: 16px;
611
+ }
612
+
613
+ /* Sub-menu header — circular back button + title */
614
+ [data-theme="lequipe"] .eb-player .eb-settings-header {
615
+ display: flex;
616
+ align-items: center;
617
+ gap: 12px;
618
+ padding: 14px 18px;
619
+ border-bottom: 1px solid rgba(255,255,255,.08);
620
+ }
621
+
622
+ [data-theme="lequipe"] .eb-player .eb-settings-header__title {
623
+ font-size: 15px;
624
+ font-weight: 600;
625
+ color: #fff;
626
+ }
627
+
628
+ [data-theme="lequipe"] .eb-player .eb-settings-back {
629
+ width: 36px;
630
+ height: 36px;
631
+ border-radius: 50%;
632
+ background: rgba(255,255,255,.12);
633
+ border: none;
634
+ cursor: pointer;
635
+ display: flex;
636
+ align-items: center;
637
+ justify-content: center;
638
+ padding: 0;
639
+ transition: background .15s;
640
+ flex-shrink: 0;
641
+ color: #fff;
642
+ }
643
+
644
+ [data-theme="lequipe"] .eb-player .eb-settings-back:hover {
645
+ background: rgba(255,255,255,.2);
646
+ }
647
+
648
+ [data-theme="lequipe"] .eb-player .eb-settings-back .eb-icon {
649
+ width: 18px;
650
+ height: 18px;
651
+ }
652
+
653
+ /* Sub-menu items */
654
+ [data-theme="lequipe"] .eb-player .eb-settings-item {
655
+ display: flex;
656
+ align-items: center;
657
+ justify-content: space-between;
658
+ padding: 16px 20px;
659
+ font-size: 14px;
660
+ color: rgba(255,255,255,.7);
661
+ border-bottom: 1px solid rgba(255,255,255,.06);
662
+ transition: background .12s;
663
+ width: 100%;
664
+ border-left: none;
665
+ border-right: none;
666
+ border-top: none;
667
+ background: none;
668
+ cursor: pointer;
669
+ text-align: left;
670
+ }
671
+
672
+ [data-theme="lequipe"] .eb-player .eb-settings-item:last-child {
673
+ border-bottom: none;
674
+ }
675
+
676
+ [data-theme="lequipe"] .eb-player .eb-settings-item:hover {
677
+ background: rgba(255,255,255,.05);
678
+ }
679
+
680
+ /* Selected item text — brighter */
681
+ [data-theme="lequipe"] .eb-player .eb-settings-item--selected {
682
+ color: #fff;
683
+ font-weight: 500;
684
+ }
685
+
686
+ /* Active selection dot (filled accent) */
687
+ [data-theme="lequipe"] .eb-player .eb-settings-item--selected::after {
688
+ content: '';
689
+ width: 12px;
690
+ height: 12px;
691
+ border-radius: 50%;
692
+ background: var(--eb-accent, #d61e00);
693
+ flex-shrink: 0;
694
+ }
695
+
696
+ /* Non-selected items: hollow dot */
697
+ [data-theme="lequipe"] .eb-player .eb-settings-item:not(.eb-settings-item--selected)::after {
698
+ content: '';
699
+ width: 12px;
700
+ height: 12px;
701
+ border-radius: 50%;
702
+ border: 2px solid rgba(255,255,255,.2);
703
+ flex-shrink: 0;
704
+ }
705
+
706
+ /* ============================================================
707
+ Loading spinner
708
+ ============================================================ */
709
+ [data-theme="lequipe"] .eb-player .eb-loading .eb-icon {
710
+ width: 52px;
711
+ height: 52px;
712
+ color: rgba(255,255,255,.7);
713
+ filter: drop-shadow(0 1px 6px rgba(0,0,0,.5));
714
+ animation: eb-spin .75s linear infinite;
715
+ }
716
+
717
+ /* ============================================================
718
+ Error overlay
719
+ ============================================================ */
720
+ [data-theme="lequipe"] .eb-player .eb-error {
721
+ background: rgba(10,10,20,.85);
722
+ backdrop-filter: blur(12px);
723
+ -webkit-backdrop-filter: blur(12px);
724
+ }
725
+
726
+ [data-theme="lequipe"] .eb-player .eb-error-message {
727
+ font-weight: 400;
728
+ letter-spacing: .01em;
729
+ }
730
+
731
+ [data-theme="lequipe"] .eb-player .eb-error-retry {
732
+ border-radius: 8px;
733
+ background: rgba(255,255,255,.1);
734
+ border-color: rgba(255,255,255,.15);
735
+ transition: background .2s, color .2s;
736
+ }
737
+
738
+ [data-theme="lequipe"] .eb-player .eb-error-retry:hover {
739
+ background: rgba(255,255,255,.18);
740
+ }
741
+
742
+ /* ============================================================
743
+ Toast (keyboard hints, status messages)
744
+ ============================================================ */
745
+ [data-theme="lequipe"] .eb-player .eb-toast {
746
+ background: rgba(0,0,0,.72);
747
+ backdrop-filter: blur(10px);
748
+ -webkit-backdrop-filter: blur(10px);
749
+ border-radius: 10px;
750
+ font-size: 13px;
751
+ padding: 8px 16px;
752
+ }
753
+
754
+ /* ============================================================
755
+ Info & socials overlays
756
+ ============================================================ */
757
+ [data-theme="lequipe"] .eb-player .eb-info-overlay,
758
+ [data-theme="lequipe"] .eb-player .eb-socials-overlay {
759
+ background: rgba(10,10,20,.85);
760
+ backdrop-filter: blur(12px);
761
+ -webkit-backdrop-filter: blur(12px);
762
+ }
763
+
764
+ [data-theme="lequipe"] .eb-player .eb-info-close,
765
+ [data-theme="lequipe"] .eb-player .eb-socials-close {
766
+ border-radius: 8px;
767
+ background: rgba(255,255,255,.07);
768
+ border-color: rgba(255,255,255,.08);
769
+ transition: background .2s, color .2s;
770
+ }
771
+
772
+ [data-theme="lequipe"] .eb-player .eb-info-close:hover,
773
+ [data-theme="lequipe"] .eb-player .eb-socials-close:hover {
774
+ background: rgba(255,255,255,.13);
775
+ color: #fff;
776
+ }
777
+
778
+ [data-theme="lequipe"] .eb-player .eb-socials-link {
779
+ background: rgba(255,255,255,.07);
780
+ border: 1px solid rgba(255,255,255,.08);
781
+ border-radius: 8px;
782
+ transition: background .2s, color .2s, border-color .2s;
783
+ }
784
+
785
+ [data-theme="lequipe"] .eb-player .eb-socials-link:hover {
786
+ background: rgba(214,30,0,.15);
787
+ border-color: rgba(214,30,0,.35);
788
+ color: #ff8a75;
789
+ }
790
+
791
+ /* ============================================================
792
+ Poster
793
+ ============================================================ */
794
+ [data-theme="lequipe"] .eb-player .eb-poster {
795
+ background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);
796
+ }
797
+
798
+ /* ============================================================
799
+ Radio overlay
800
+ ============================================================ */
801
+ [data-theme="lequipe"] .eb-player .eb-radio-overlay {
802
+ background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);
803
+ }
804
+
805
+ [data-theme="lequipe"] .eb-player .eb-radio-bar {
806
+ background: rgba(214,30,0,.8);
807
+ }
808
+
809
+ /* ============================================================
810
+ Chapter skip button
811
+ ============================================================ */
812
+ [data-theme="lequipe"] .eb-player .eb-chapter-skip {
813
+ background: rgba(10,10,20,.55);
814
+ backdrop-filter: blur(12px);
815
+ -webkit-backdrop-filter: blur(12px);
816
+ border: 1px solid rgba(255,255,255,.15);
817
+ border-radius: 8px;
818
+ font-size: 12px;
819
+ font-weight: 500;
820
+ transition: background .15s;
821
+ }
822
+
823
+ [data-theme="lequipe"] .eb-player .eb-chapter-skip:hover {
824
+ background: rgba(255,255,255,.12);
57
825
  }
58
826
 
59
827
  /**
@@ -350,7 +1118,7 @@
350
1118
  }
351
1119
 
352
1120
  [data-theme="modern"] .eb-player .eb-volume-fill {
353
- background: #fff;
1121
+ background: var(--eb-color-primary, #7c3aed);
354
1122
  }
355
1123
 
356
1124
  [data-theme="modern"] .eb-player .eb-volume-thumb {
@@ -980,7 +1748,7 @@
980
1748
  }
981
1749
 
982
1750
  [data-theme="v2"] .eb-player .eb-volume-fill {
983
- background: #fff;
1751
+ background: var(--eb-color-primary, #ff841f);
984
1752
  }
985
1753
 
986
1754
  [data-theme="v2"] .eb-player .eb-volume-thumb {
@@ -1563,9 +2331,10 @@
1563
2331
  position: absolute;
1564
2332
  background: rgba(0, 0, 0, 0.85);
1565
2333
  border-radius: 6px;
1566
- min-width: 180px;
2334
+ min-width: 160px;
2335
+ max-width: 220px;
1567
2336
  overflow: hidden;
1568
- font-size: 13px;
2337
+ font-size: 12px;
1569
2338
  z-index: 40;
1570
2339
  }
1571
2340
 
@@ -1593,6 +2362,20 @@
1593
2362
  padding: 4px 0;
1594
2363
  }
1595
2364
 
2365
+ .eb-settings-submenu .eb-settings-menu {
2366
+ max-height: 200px;
2367
+ overflow-y: auto;
2368
+ }
2369
+
2370
+ .eb-settings-submenu .eb-settings-menu::-webkit-scrollbar {
2371
+ width: 4px;
2372
+ }
2373
+
2374
+ .eb-settings-submenu .eb-settings-menu::-webkit-scrollbar-thumb {
2375
+ background: rgba(255, 255, 255, 0.3);
2376
+ border-radius: 2px;
2377
+ }
2378
+
1596
2379
  .eb-settings-category,
1597
2380
  .eb-settings-item,
1598
2381
  .eb-settings-back {
@@ -1600,12 +2383,12 @@
1600
2383
  align-items: center;
1601
2384
  justify-content: space-between;
1602
2385
  width: 100%;
1603
- padding: 8px 14px;
2386
+ padding: 5px 12px;
1604
2387
  border: none;
1605
2388
  background: none;
1606
2389
  color: #fff;
1607
2390
  cursor: pointer;
1608
- font-size: 13px;
2391
+ font-size: 12px;
1609
2392
  text-align: left;
1610
2393
  }
1611
2394
 
@@ -1616,7 +2399,7 @@
1616
2399
  }
1617
2400
 
1618
2401
  .eb-settings-item--selected {
1619
- color: var(--eb-accent, #e53935);
2402
+ color: var(--eb-accent, var(--eb-color-primary, #e53935));
1620
2403
  }
1621
2404
 
1622
2405
  /* ============================================================
@@ -1854,7 +2637,7 @@
1854
2637
  }
1855
2638
 
1856
2639
  .eb-live-synced {
1857
- color: var(--eb-accent, #e53935);
2640
+ color: var(--eb-accent, var(--eb-color-primary, #e53935));
1858
2641
  }
1859
2642
 
1860
2643
  /* Default theme: show icon only, hide text badge elements */