myetv-player 1.6.3 → 1.6.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.
@@ -445,584 +445,565 @@ body {
445
445
  -moz-osx-font-smoothing: grayscale;
446
446
  }
447
447
 
448
- /* TITLE OVERLAY - WITH AUTO-HIDE */
449
- .title-overlay {
448
+ /* ==============================================
449
+ INTEGRATED TOP BAR WITH SETTINGS
450
+ ============================================== */
451
+ .player-top-bar {
450
452
  position: absolute;
451
453
  top: 0;
452
454
  left: 0;
453
455
  right: 0;
454
- background: var(--player-bg-title-overlay);
455
- padding: var(--player-title-overlay-padding);
456
+ display: flex;
457
+ justify-content: space-between;
458
+ align-items: flex-start;
459
+ padding: 15px 20px;
460
+ background: linear-gradient(to bottom, rgba(0, 0, 0, calc(var(--player-topbar-opacity, 0.95) * 0.89)) 0%, rgba(0, 0, 0, calc(var(--player-topbar-opacity, 0.95) * 0.68)) 50%, rgba(0, 0, 0, 0) 100%);
461
+ backdrop-filter: blur(5px);
462
+ z-index: 20;
456
463
  opacity: 0;
457
464
  transform: translateY(-100%);
458
- transition: all var(--player-transition-normal);
459
- z-index: 15;
465
+ transition: all 0.3s ease;
460
466
  pointer-events: none;
461
467
  }
462
-
463
- .title-overlay.show {
464
- opacity: 1;
465
- transform: translateY(0);
466
- }
467
-
468
- .title-overlay.show.persistent {
469
- opacity: 1;
470
- transform: translateY(0);
468
+ .player-top-bar .top-bar-title {
469
+ flex: 1;
470
+ margin-right: 20px;
471
+ pointer-events: none;
472
+ min-width: 0;
473
+ max-width: calc(100% - 80px);
471
474
  }
472
-
473
- .title-text {
474
- color: var(--player-text-color);
475
+ .player-top-bar .top-bar-title .video-title {
476
+ color: #fff;
475
477
  font-size: 18px;
476
478
  font-weight: 600;
479
+ margin: 0 0 4px 0;
480
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
477
481
  line-height: 1.3;
478
- margin: 0;
479
- white-space: nowrap;
482
+ max-width: 100%;
480
483
  overflow: hidden;
481
484
  text-overflow: ellipsis;
482
- text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
483
- -webkit-font-smoothing: antialiased;
484
- -moz-osx-font-smoothing: grayscale;
485
- }
486
-
487
- .subtitle-text {
488
- color: var(--player-text-color);
489
- font-size: 14px;
490
- font-weight: 400;
491
- line-height: 1.3;
492
- margin: 5px 0 0 0;
493
485
  white-space: nowrap;
494
- overflow: hidden;
495
- text-overflow: ellipsis;
496
- text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
497
- opacity: 0.9;
498
- -webkit-font-smoothing: antialiased;
499
- -moz-osx-font-smoothing: grayscale;
486
+ display: block;
500
487
  }
501
-
502
- .chapter-name {
503
- font-size: 13px;
504
- font-weight: 500;
505
- color: rgba(255, 255, 255, 0.9);
506
- margin-top: 6px;
507
- max-width: 400px;
488
+ .player-top-bar .top-bar-title .video-subtitle {
489
+ color: rgba(255, 255, 255, 0.8);
490
+ font-size: 14px;
491
+ text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
492
+ max-width: 100%;
508
493
  overflow: hidden;
509
494
  text-overflow: ellipsis;
510
495
  white-space: nowrap;
511
- transition: opacity 0.3s;
496
+ display: block;
512
497
  }
513
-
514
- /* CONTROLS CONTAINER - IMPROVED RESPONSIVE DESIGN */
515
- .controls {
498
+ .player-top-bar .top-bar-spacer {
499
+ flex: 1;
500
+ }
501
+ .player-top-bar .settings-control {
502
+ pointer-events: all;
503
+ position: relative;
504
+ flex-shrink: 0;
505
+ }
506
+ .player-top-bar .settings-control .settings-btn {
507
+ background: rgba(0, 0, 0, 0.6);
508
+ backdrop-filter: blur(10px);
509
+ padding: 10px;
510
+ border-radius: 50%;
511
+ border: 1px solid rgba(255, 255, 255, 0.15);
512
+ transition: all 0.3s ease;
513
+ cursor: pointer;
514
+ }
515
+ .player-top-bar .settings-control .settings-btn:hover, .player-top-bar .settings-control .settings-btn.active {
516
+ background: rgba(0, 0, 0, 0.9);
517
+ border-color: rgba(255, 255, 255, 0.3);
518
+ transform: rotate(90deg);
519
+ }
520
+ .player-top-bar .settings-control .settings-btn .icon svg {
521
+ display: block;
522
+ }
523
+ .player-top-bar .settings-control .settings-menu {
516
524
  position: absolute;
517
- bottom: 0;
518
- left: 0;
525
+ top: calc(100% + 10px);
519
526
  right: 0;
520
- background: var(--player-bg-controls);
521
- padding: var(--player-controls-padding);
527
+ min-width: 240px;
528
+ max-width: 320px;
529
+ background: rgba(28, 28, 28, 0.98);
530
+ backdrop-filter: blur(20px);
531
+ border-radius: 8px;
532
+ border: 1px solid rgba(255, 255, 255, 0.1);
533
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
522
534
  opacity: 0;
523
- transform: translateY(100%);
524
- transition: all var(--player-transition-normal);
525
- z-index: 10;
526
- min-height: 70px !important;
527
- box-sizing: border-box;
535
+ visibility: hidden;
536
+ transform: translateY(-10px);
537
+ transition: all 0.3s ease;
538
+ max-height: 600px !important;
539
+ min-height: 200px;
540
+ overflow-y: auto;
541
+ overflow-x: hidden;
542
+ scrollbar-width: thin;
543
+ scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
528
544
  }
529
-
530
- .controls.show {
545
+ .player-top-bar .settings-control .settings-menu::-webkit-scrollbar {
546
+ width: 6px;
547
+ }
548
+ .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-track {
549
+ background: rgba(255, 255, 255, 0.05);
550
+ border-radius: 3px;
551
+ }
552
+ .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-thumb {
553
+ background: rgba(255, 255, 255, 0.3);
554
+ border-radius: 3px;
555
+ }
556
+ .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-thumb:hover {
557
+ background: rgba(255, 255, 255, 0.5);
558
+ }
559
+ .player-top-bar .settings-control .settings-menu.active {
531
560
  opacity: 1;
561
+ visibility: visible;
532
562
  transform: translateY(0);
533
- position: absolute !important;
534
- bottom: 0 !important;
535
- z-index: 20 !important;
536
563
  }
537
564
 
538
- .play-icon svg,
539
- .pause-icon svg,
540
- .volume-icon svg,
541
- .mute-icon svg,
542
- .playlist-prev-btn .icon svg,
543
- .playlist-next-btn .icon svg,
544
- .subtitles-btn .icon svg,
545
- .fullscreen-icon svg,
546
- .exit-fullscreen-icon svg,
547
- .pip-icon svg,
548
- .pip-exit-icon svg {
549
- width: 16px;
550
- height: 16px;
551
- display: block;
565
+ .settings-expandable-wrapper {
566
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
567
+ }
568
+ .settings-expandable-wrapper:last-child {
569
+ border-bottom: none;
552
570
  }
553
571
 
554
- /* MAIN CONTROLS - IMPROVED RESPONSIVE LAYOUT */
555
- .controls-main {
572
+ .settings-option {
573
+ padding: 12px 16px;
574
+ cursor: pointer;
575
+ transition: background 0.2s ease;
556
576
  display: flex;
557
577
  justify-content: space-between;
558
578
  align-items: center;
559
- width: 100%;
560
- min-height: 44px !important;
561
- flex-shrink: 0;
579
+ color: #fff;
580
+ user-select: none;
562
581
  }
563
-
564
- .controls-left,
565
- .controls-right {
566
- display: flex;
567
- align-items: center;
568
- gap: 8px;
569
- flex-shrink: 1;
570
- min-width: 0;
582
+ .settings-option:hover {
583
+ background: rgba(255, 255, 255, 0.1);
571
584
  }
572
-
573
- /* BUTTONS - IMPROVED RESPONSIVE BEHAVIOR */
574
- .control-btn {
575
- background: none;
576
- border: none;
577
- color: var(--player-button-color);
578
- cursor: pointer;
579
- padding: var(--player-button-padding);
580
- border-radius: 6px;
581
- display: flex;
582
- align-items: center;
583
- justify-content: center;
584
- gap: 5px;
585
- transition: all var(--player-transition-fast);
585
+ .settings-option .settings-option-label {
586
+ flex: 1;
587
+ color: #fff;
586
588
  font-size: 14px;
587
- font-weight: 500;
588
- position: relative;
589
- flex-shrink: 1;
590
- min-width: 0;
591
- white-space: nowrap;
592
- vertical-align: middle;
589
+ font-weight: 400;
593
590
  }
594
-
595
- .control-btn:hover {
596
- background: var(--player-button-hover);
597
- transform: scale(1.05);
591
+ .settings-option .settings-option-label strong {
592
+ font-weight: 600;
593
+ margin-left: 4px;
598
594
  }
599
-
600
- .control-btn:active {
601
- transform: scale(0.95);
602
- background: var(--player-button-active);
595
+ .settings-option .expand-arrow {
596
+ color: rgba(255, 255, 255, 0.6);
597
+ font-size: 12px;
598
+ transition: transform 0.3s ease;
599
+ margin-left: 10px;
600
+ line-height: 1;
603
601
  }
604
602
 
605
- /* SPECIFIC SUBTITLES BUTTON */
606
- .subtitles-btn {
607
- position: relative;
603
+ .settings-expandable-content {
604
+ background: rgba(0, 0, 0, 0.3);
605
+ max-height: 250px;
606
+ overflow-y: auto;
607
+ scrollbar-width: thin;
608
+ scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
608
609
  }
609
-
610
- /* QUALITY BUTTON WITH DUAL DISPLAY */
611
- .quality-btn {
612
- min-height: 36px;
613
- padding: 6px 8px;
610
+ .settings-expandable-content::-webkit-scrollbar {
611
+ width: 4px;
614
612
  }
615
-
616
- .quality-btn-text {
617
- display: flex;
618
- flex-direction: column;
619
- align-items: center;
620
- line-height: 1;
613
+ .settings-expandable-content::-webkit-scrollbar-thumb {
614
+ background: rgba(255, 255, 255, 0.2);
615
+ border-radius: 2px;
621
616
  }
622
-
623
- .selected-quality {
624
- font-size: 14px;
625
- font-weight: 500;
626
- color: var(--player-button-color);
627
- }
628
-
629
- .current-quality {
630
- font-size: 10px;
631
- font-weight: 400;
632
- color: var(--player-text-secondary);
633
- opacity: 0.8;
634
- margin-top: 2px;
635
- line-height: 1;
636
- }
637
-
638
- /* TIME DISPLAY - RESPONSIVE */
639
- .time-display {
640
- color: var(--player-text-color);
641
- font-size: 14px;
642
- font-weight: 500;
643
- display: flex;
644
- flex-direction: column;
645
- align-items: center;
646
- justify-content: center;
647
- line-height: 1.1;
648
- gap: 0;
649
- font-variant-numeric: tabular-nums;
650
- flex-shrink: 2;
651
- min-width: 0;
652
- margin: 0 5px;
653
- }
654
-
655
- .time-display .duration {
656
- font-size: 10px;
657
- color: var(--player-text-secondary);
658
- opacity: 0.8;
659
- font-weight: 400;
660
- }
661
-
662
- /* ICONS */
663
- .icon {
664
- width: var(--player-icon-size);
665
- height: var(--player-icon-size);
666
- display: flex;
667
- align-items: center;
668
- justify-content: center;
669
- font-size: 16px;
670
- }
671
-
672
- .hidden {
673
- display: none !important;
674
- }
675
-
676
- /* BRAND LOGO RESPONSIVE */
677
- .controls-right .brand-logo {
678
- height: 44px;
679
- max-width: 120px;
680
- object-fit: contain;
681
- margin-right: 10px;
682
- pointer-events: auto;
683
- opacity: 0.8;
684
- transition: opacity var(--player-transition-fast);
685
- order: -1;
686
- flex-shrink: 1;
617
+ .settings-expandable-content::-webkit-scrollbar-thumb:hover {
618
+ background: rgba(255, 255, 255, 0.3);
687
619
  }
688
620
 
689
- .controls-right .brand-logo:hover {
690
- opacity: 1;
621
+ .settings-suboption {
622
+ padding: 10px 20px 10px 32px;
623
+ cursor: pointer;
624
+ transition: background 0.2s ease;
625
+ color: rgba(255, 255, 255, 0.8);
626
+ font-size: 13px;
627
+ user-select: none;
691
628
  }
692
-
693
- .controls-right .brand-logo-link {
694
- order: -1;
695
- margin-right: 10px;
696
- display: inline-block;
697
- text-decoration: none;
629
+ .settings-suboption:hover {
630
+ background: rgba(255, 255, 255, 0.08);
631
+ color: rgba(255, 255, 255, 0.95);
698
632
  }
699
-
700
- .controls-right .brand-logo-link .brand-logo {
701
- margin-right: 0;
633
+ .settings-suboption.active {
634
+ background: rgba(255, 255, 255, 0.15);
635
+ color: #fff;
636
+ font-weight: 500;
637
+ position: relative;
702
638
  }
703
-
704
- /* Hide cursor when controlbar is hidden */
705
- .video-wrapper.hide-cursor {
706
- cursor: none !important;
639
+ .settings-suboption.active::before {
640
+ content: "✓";
641
+ position: absolute;
642
+ left: 12px;
643
+ color: var(--player-primary-color, #ff0000);
644
+ font-weight: 700;
707
645
  }
708
646
 
709
- /* Ensure cursor is visible on controls even when hide-cursor is active */
710
- .video-wrapper.hide-cursor .controls {
711
- cursor: default !important;
647
+ /* ==============================================
648
+ TOP BAR AUTO-HIDE BEHAVIOR
649
+ Show ONLY when controls are visible (has-controls class)
650
+ ============================================== */
651
+ /* Default hidden state - IMPORTANT: High specificity to override :hover */
652
+ body .video-wrapper:hover .player-top-bar,
653
+ body .video-wrapper .player-top-bar {
654
+ opacity: 0 !important;
655
+ transform: translateY(-100%) !important;
656
+ transition: all 0.3s ease !important;
712
657
  }
713
658
 
714
- /* Ensure cursor is visible on buttons */
715
- .video-wrapper.hide-cursor .control-btn {
716
- cursor: pointer !important;
659
+ /* Show only when has-controls class is present */
660
+ body .video-wrapper.has-controls .player-top-bar {
661
+ opacity: 1 !important;
662
+ transform: translateY(0) !important;
717
663
  }
718
664
 
719
- /* do not hide mouse on iframes */
720
- .video-wrapper.hide-cursor iframe {
721
- cursor: auto !important;
722
- pointer-events: auto !important;
665
+ /* NEW: Always visible if persistent class is present */
666
+ body .video-wrapper .player-top-bar.persistent {
667
+ opacity: 1 !important;
668
+ transform: translateY(0) !important;
723
669
  }
724
670
 
725
- .play-from-start-btn .restart-icon {
726
- display: inline-flex;
727
- align-items: center;
728
- justify-content: center;
671
+ /* ==============================================
672
+ RESPONSIVE - MOBILE
673
+ ============================================== */
674
+ @media (max-width: 768px) {
675
+ .player-top-bar {
676
+ padding: 12px 15px;
677
+ }
678
+ .player-top-bar .top-bar-title {
679
+ margin-right: 15px;
680
+ max-width: calc(100% - 70px);
681
+ }
682
+ .player-top-bar .top-bar-title .video-title {
683
+ font-size: 16px;
684
+ }
685
+ .player-top-bar .top-bar-title .video-subtitle {
686
+ font-size: 13px;
687
+ }
688
+ .player-top-bar .settings-control .settings-btn {
689
+ padding: 8px;
690
+ }
691
+ .player-top-bar .settings-control .settings-btn .icon svg {
692
+ width: 18px;
693
+ height: 18px;
694
+ }
695
+ .player-top-bar .settings-control .settings-menu {
696
+ min-width: 200px;
697
+ max-height: 400px;
698
+ }
729
699
  }
730
-
731
- .control-btn .icon {
732
- display: inline-flex;
733
- align-items: center;
734
- justify-content: center;
700
+ @media (max-width: 480px) {
701
+ .player-top-bar {
702
+ padding: 10px 12px;
703
+ }
704
+ .player-top-bar .top-bar-title {
705
+ margin-right: 10px;
706
+ max-width: calc(100% - 60px);
707
+ }
708
+ .player-top-bar .top-bar-title .video-title {
709
+ font-size: 14px;
710
+ }
711
+ .player-top-bar .top-bar-title .video-subtitle {
712
+ font-size: 12px;
713
+ }
714
+ .player-top-bar .settings-control .settings-btn {
715
+ padding: 6px;
716
+ }
717
+ .player-top-bar .settings-control .settings-btn .icon svg {
718
+ width: 16px;
719
+ height: 16px;
720
+ }
721
+ .player-top-bar .settings-control .settings-menu {
722
+ min-width: 180px;
723
+ max-height: 300px;
724
+ }
735
725
  }
736
-
737
726
  /* ==============================================
738
- INTEGRATED TOP BAR WITH SETTINGS
727
+ FULLSCREEN MODE
739
728
  ============================================== */
740
- .player-top-bar {
741
- position: absolute;
742
- top: 0;
743
- left: 0;
744
- right: 0;
745
- display: flex;
746
- justify-content: space-between;
747
- align-items: flex-start;
748
- padding: 15px 20px;
749
- background: linear-gradient(to bottom, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.65) 50%, rgba(0, 0, 0, 0) 100%);
750
- backdrop-filter: blur(5px);
751
- z-index: 20;
752
- opacity: 0;
753
- transform: translateY(-100%);
754
- transition: all 0.3s ease;
755
- pointer-events: none;
729
+ .video-wrapper:fullscreen .player-top-bar,
730
+ .video-wrapper:-webkit-full-screen .player-top-bar,
731
+ .video-wrapper:-moz-full-screen .player-top-bar {
732
+ padding: 20px 30px;
756
733
  }
757
- .player-top-bar .top-bar-title {
758
- flex: 1;
759
- margin-right: 20px;
760
- pointer-events: none;
761
- min-width: 0;
762
- max-width: calc(100% - 80px);
734
+ .video-wrapper:fullscreen .player-top-bar .top-bar-title .video-title,
735
+ .video-wrapper:-webkit-full-screen .player-top-bar .top-bar-title .video-title,
736
+ .video-wrapper:-moz-full-screen .player-top-bar .top-bar-title .video-title {
737
+ font-size: 22px;
763
738
  }
764
- .player-top-bar .top-bar-title .video-title {
765
- color: #fff;
739
+ .video-wrapper:fullscreen .player-top-bar .settings-control .settings-btn,
740
+ .video-wrapper:-webkit-full-screen .player-top-bar .settings-control .settings-btn,
741
+ .video-wrapper:-moz-full-screen .player-top-bar .settings-control .settings-btn {
742
+ padding: 12px;
743
+ }
744
+
745
+ .title-text {
746
+ color: var(--player-text-color);
766
747
  font-size: 18px;
767
748
  font-weight: 600;
768
- margin: 0 0 4px 0;
769
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
770
749
  line-height: 1.3;
771
- max-width: 100%;
750
+ margin: 0;
751
+ white-space: nowrap;
772
752
  overflow: hidden;
773
753
  text-overflow: ellipsis;
774
- white-space: nowrap;
775
- display: block;
754
+ text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
755
+ -webkit-font-smoothing: antialiased;
756
+ -moz-osx-font-smoothing: grayscale;
776
757
  }
777
- .player-top-bar .top-bar-title .video-subtitle {
778
- color: rgba(255, 255, 255, 0.8);
758
+
759
+ .subtitle-text {
760
+ color: var(--player-text-color);
779
761
  font-size: 14px;
780
- text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
781
- max-width: 100%;
762
+ font-weight: 400;
763
+ line-height: 1.3;
764
+ margin: 5px 0 0 0;
765
+ white-space: nowrap;
782
766
  overflow: hidden;
783
767
  text-overflow: ellipsis;
784
- white-space: nowrap;
785
- display: block;
786
- }
787
- .player-top-bar .top-bar-spacer {
788
- flex: 1;
789
- }
790
- .player-top-bar .settings-control {
791
- pointer-events: all;
792
- position: relative;
793
- flex-shrink: 0;
794
- }
795
- .player-top-bar .settings-control .settings-btn {
796
- background: rgba(0, 0, 0, 0.6);
797
- backdrop-filter: blur(10px);
798
- padding: 10px;
799
- border-radius: 50%;
800
- border: 1px solid rgba(255, 255, 255, 0.15);
801
- transition: all 0.3s ease;
802
- cursor: pointer;
803
- }
804
- .player-top-bar .settings-control .settings-btn:hover, .player-top-bar .settings-control .settings-btn.active {
805
- background: rgba(0, 0, 0, 0.9);
806
- border-color: rgba(255, 255, 255, 0.3);
807
- transform: rotate(90deg);
768
+ text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
769
+ opacity: 0.9;
770
+ -webkit-font-smoothing: antialiased;
771
+ -moz-osx-font-smoothing: grayscale;
808
772
  }
809
- .player-top-bar .settings-control .settings-btn .icon svg {
810
- display: block;
773
+
774
+ .chapter-name {
775
+ font-size: 13px;
776
+ font-weight: 500;
777
+ color: rgba(255, 255, 255, 0.9);
778
+ margin-top: 6px;
779
+ max-width: 400px;
780
+ overflow: hidden;
781
+ text-overflow: ellipsis;
782
+ white-space: nowrap;
783
+ transition: opacity 0.3s;
811
784
  }
812
- .player-top-bar .settings-control .settings-menu {
785
+
786
+ /* CONTROLS CONTAINER - IMPROVED RESPONSIVE DESIGN */
787
+ .controls {
813
788
  position: absolute;
814
- top: calc(100% + 10px);
789
+ bottom: 0;
790
+ left: 0;
815
791
  right: 0;
816
- min-width: 240px;
817
- max-width: 320px;
818
- background: rgba(28, 28, 28, 0.98);
819
- backdrop-filter: blur(20px);
820
- border-radius: 8px;
821
- border: 1px solid rgba(255, 255, 255, 0.1);
822
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
792
+ background: var(--player-bg-controls);
793
+ padding: var(--player-controls-padding);
823
794
  opacity: 0;
824
- visibility: hidden;
825
- transform: translateY(-10px);
826
- transition: all 0.3s ease;
827
- max-height: 600px !important;
828
- min-height: 200px;
829
- overflow-y: auto;
830
- overflow-x: hidden;
831
- scrollbar-width: thin;
832
- scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
795
+ transform: translateY(100%);
796
+ transition: all var(--player-transition-normal);
797
+ z-index: 10;
798
+ min-height: 70px !important;
799
+ box-sizing: border-box;
833
800
  }
834
- .player-top-bar .settings-control .settings-menu::-webkit-scrollbar {
835
- width: 6px;
801
+
802
+ .controls.show {
803
+ opacity: 1;
804
+ transform: translateY(0);
805
+ position: absolute !important;
806
+ bottom: 0 !important;
807
+ z-index: 20 !important;
836
808
  }
837
- .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-track {
838
- background: rgba(255, 255, 255, 0.05);
839
- border-radius: 3px;
809
+
810
+ .play-icon svg,
811
+ .pause-icon svg,
812
+ .volume-icon svg,
813
+ .mute-icon svg,
814
+ .playlist-prev-btn .icon svg,
815
+ .playlist-next-btn .icon svg,
816
+ .subtitles-btn .icon svg,
817
+ .fullscreen-icon svg,
818
+ .exit-fullscreen-icon svg,
819
+ .pip-icon svg,
820
+ .pip-exit-icon svg {
821
+ width: 16px;
822
+ height: 16px;
823
+ display: block;
840
824
  }
841
- .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-thumb {
842
- background: rgba(255, 255, 255, 0.3);
843
- border-radius: 3px;
825
+
826
+ /* MAIN CONTROLS - IMPROVED RESPONSIVE LAYOUT */
827
+ .controls-main {
828
+ display: flex;
829
+ justify-content: space-between;
830
+ align-items: center;
831
+ width: 100%;
832
+ min-height: 44px !important;
833
+ flex-shrink: 0;
844
834
  }
845
- .player-top-bar .settings-control .settings-menu::-webkit-scrollbar-thumb:hover {
846
- background: rgba(255, 255, 255, 0.5);
835
+
836
+ .controls-left,
837
+ .controls-right {
838
+ display: flex;
839
+ align-items: center;
840
+ gap: 8px;
841
+ flex-shrink: 1;
842
+ min-width: 0;
843
+ }
844
+
845
+ /* BUTTONS - IMPROVED RESPONSIVE BEHAVIOR */
846
+ .control-btn {
847
+ background: none;
848
+ border: none;
849
+ color: var(--player-button-color);
850
+ cursor: pointer;
851
+ padding: var(--player-button-padding);
852
+ border-radius: 6px;
853
+ display: flex;
854
+ align-items: center;
855
+ justify-content: center;
856
+ gap: 5px;
857
+ transition: all var(--player-transition-fast);
858
+ font-size: 14px;
859
+ font-weight: 500;
860
+ position: relative;
861
+ flex-shrink: 1;
862
+ min-width: 0;
863
+ white-space: nowrap;
864
+ vertical-align: middle;
865
+ }
866
+
867
+ .control-btn:hover {
868
+ background: var(--player-button-hover);
869
+ transform: scale(1.05);
847
870
  }
848
- .player-top-bar .settings-control .settings-menu.active {
849
- opacity: 1;
850
- visibility: visible;
851
- transform: translateY(0);
871
+
872
+ .control-btn:active {
873
+ transform: scale(0.95);
874
+ background: var(--player-button-active);
852
875
  }
853
876
 
854
- .settings-expandable-wrapper {
855
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
877
+ /* SPECIFIC SUBTITLES BUTTON */
878
+ .subtitles-btn {
879
+ position: relative;
856
880
  }
857
- .settings-expandable-wrapper:last-child {
858
- border-bottom: none;
881
+
882
+ /* QUALITY BUTTON WITH DUAL DISPLAY */
883
+ .quality-btn {
884
+ min-height: 36px;
885
+ padding: 6px 8px;
859
886
  }
860
887
 
861
- .settings-option {
862
- padding: 12px 16px;
863
- cursor: pointer;
864
- transition: background 0.2s ease;
888
+ .quality-btn-text {
865
889
  display: flex;
866
- justify-content: space-between;
890
+ flex-direction: column;
867
891
  align-items: center;
868
- color: #fff;
869
- user-select: none;
870
- }
871
- .settings-option:hover {
872
- background: rgba(255, 255, 255, 0.1);
892
+ line-height: 1;
873
893
  }
874
- .settings-option .settings-option-label {
875
- flex: 1;
876
- color: #fff;
894
+
895
+ .selected-quality {
877
896
  font-size: 14px;
878
- font-weight: 400;
879
- }
880
- .settings-option .settings-option-label strong {
881
- font-weight: 600;
882
- margin-left: 4px;
897
+ font-weight: 500;
898
+ color: var(--player-button-color);
883
899
  }
884
- .settings-option .expand-arrow {
885
- color: rgba(255, 255, 255, 0.6);
886
- font-size: 12px;
887
- transition: transform 0.3s ease;
888
- margin-left: 10px;
900
+
901
+ .current-quality {
902
+ font-size: 10px;
903
+ font-weight: 400;
904
+ color: var(--player-text-secondary);
905
+ opacity: 0.8;
906
+ margin-top: 2px;
889
907
  line-height: 1;
890
908
  }
891
909
 
892
- .settings-expandable-content {
893
- background: rgba(0, 0, 0, 0.3);
894
- max-height: 250px;
895
- overflow-y: auto;
896
- scrollbar-width: thin;
897
- scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
898
- }
899
- .settings-expandable-content::-webkit-scrollbar {
900
- width: 4px;
910
+ /* TIME DISPLAY - RESPONSIVE */
911
+ .time-display {
912
+ color: var(--player-text-color);
913
+ font-size: 14px;
914
+ font-weight: 500;
915
+ display: flex;
916
+ flex-direction: column;
917
+ align-items: center;
918
+ justify-content: center;
919
+ line-height: 1.1;
920
+ gap: 0;
921
+ font-variant-numeric: tabular-nums;
922
+ flex-shrink: 2;
923
+ min-width: 0;
924
+ margin: 0 5px;
901
925
  }
902
- .settings-expandable-content::-webkit-scrollbar-thumb {
903
- background: rgba(255, 255, 255, 0.2);
904
- border-radius: 2px;
926
+
927
+ .time-display .duration {
928
+ font-size: 10px;
929
+ color: var(--player-text-secondary);
930
+ opacity: 0.8;
931
+ font-weight: 400;
905
932
  }
906
- .settings-expandable-content::-webkit-scrollbar-thumb:hover {
907
- background: rgba(255, 255, 255, 0.3);
933
+
934
+ /* ICONS */
935
+ .icon {
936
+ width: var(--player-icon-size);
937
+ height: var(--player-icon-size);
938
+ display: flex;
939
+ align-items: center;
940
+ justify-content: center;
941
+ font-size: 16px;
908
942
  }
909
943
 
910
- .settings-suboption {
911
- padding: 10px 20px 10px 32px;
912
- cursor: pointer;
913
- transition: background 0.2s ease;
914
- color: rgba(255, 255, 255, 0.8);
915
- font-size: 13px;
916
- user-select: none;
944
+ .hidden {
945
+ display: none !important;
917
946
  }
918
- .settings-suboption:hover {
919
- background: rgba(255, 255, 255, 0.08);
920
- color: rgba(255, 255, 255, 0.95);
947
+
948
+ /* BRAND LOGO RESPONSIVE */
949
+ .controls-right .brand-logo {
950
+ height: 44px;
951
+ max-width: 120px;
952
+ object-fit: contain;
953
+ margin-right: 10px;
954
+ pointer-events: auto;
955
+ opacity: 0.8;
956
+ transition: opacity var(--player-transition-fast);
957
+ order: -1;
958
+ flex-shrink: 1;
921
959
  }
922
- .settings-suboption.active {
923
- background: rgba(255, 255, 255, 0.15);
924
- color: #fff;
925
- font-weight: 500;
926
- position: relative;
960
+
961
+ .controls-right .brand-logo:hover {
962
+ opacity: 1;
927
963
  }
928
- .settings-suboption.active::before {
929
- content: "✓";
930
- position: absolute;
931
- left: 12px;
932
- color: var(--player-primary-color, #ff0000);
933
- font-weight: 700;
964
+
965
+ .controls-right .brand-logo-link {
966
+ order: -1;
967
+ margin-right: 10px;
968
+ display: inline-block;
969
+ text-decoration: none;
934
970
  }
935
971
 
936
- /* ==============================================
937
- TOP BAR AUTO-HIDE BEHAVIOR
938
- Show ONLY when controls are visible (has-controls class)
939
- ============================================== */
940
- /* Default hidden state - IMPORTANT: High specificity to override :hover */
941
- body .video-wrapper:hover .player-top-bar,
942
- body .video-wrapper .player-top-bar {
943
- opacity: 0 !important;
944
- transform: translateY(-100%) !important;
945
- transition: all 0.3s ease !important;
972
+ .controls-right .brand-logo-link .brand-logo {
973
+ margin-right: 0;
946
974
  }
947
975
 
948
- /* Show only when has-controls class is present */
949
- body .video-wrapper.has-controls .player-top-bar {
950
- opacity: 1 !important;
951
- transform: translateY(0) !important;
976
+ /* Hide cursor when controlbar is hidden */
977
+ .video-wrapper.hide-cursor {
978
+ cursor: none !important;
952
979
  }
953
980
 
954
- /* ==============================================
955
- RESPONSIVE - MOBILE
956
- ============================================== */
957
- @media (max-width: 768px) {
958
- .player-top-bar {
959
- padding: 12px 15px;
960
- }
961
- .player-top-bar .top-bar-title {
962
- margin-right: 15px;
963
- max-width: calc(100% - 70px);
964
- }
965
- .player-top-bar .top-bar-title .video-title {
966
- font-size: 16px;
967
- }
968
- .player-top-bar .top-bar-title .video-subtitle {
969
- font-size: 13px;
970
- }
971
- .player-top-bar .settings-control .settings-btn {
972
- padding: 8px;
973
- }
974
- .player-top-bar .settings-control .settings-btn .icon svg {
975
- width: 18px;
976
- height: 18px;
977
- }
978
- .player-top-bar .settings-control .settings-menu {
979
- min-width: 200px;
980
- max-height: 400px;
981
- }
981
+ /* Ensure cursor is visible on controls even when hide-cursor is active */
982
+ .video-wrapper.hide-cursor .controls {
983
+ cursor: default !important;
982
984
  }
983
- @media (max-width: 480px) {
984
- .player-top-bar {
985
- padding: 10px 12px;
986
- }
987
- .player-top-bar .top-bar-title {
988
- margin-right: 10px;
989
- max-width: calc(100% - 60px);
990
- }
991
- .player-top-bar .top-bar-title .video-title {
992
- font-size: 14px;
993
- }
994
- .player-top-bar .top-bar-title .video-subtitle {
995
- font-size: 12px;
996
- }
997
- .player-top-bar .settings-control .settings-btn {
998
- padding: 6px;
999
- }
1000
- .player-top-bar .settings-control .settings-btn .icon svg {
1001
- width: 16px;
1002
- height: 16px;
1003
- }
1004
- .player-top-bar .settings-control .settings-menu {
1005
- min-width: 180px;
1006
- max-height: 300px;
1007
- }
985
+
986
+ /* Ensure cursor is visible on buttons */
987
+ .video-wrapper.hide-cursor .control-btn {
988
+ cursor: pointer !important;
1008
989
  }
1009
- /* ==============================================
1010
- FULLSCREEN MODE
1011
- ============================================== */
1012
- .video-wrapper:fullscreen .player-top-bar,
1013
- .video-wrapper:-webkit-full-screen .player-top-bar,
1014
- .video-wrapper:-moz-full-screen .player-top-bar {
1015
- padding: 20px 30px;
990
+
991
+ /* do not hide mouse on iframes */
992
+ .video-wrapper.hide-cursor iframe {
993
+ cursor: auto !important;
994
+ pointer-events: auto !important;
1016
995
  }
1017
- .video-wrapper:fullscreen .player-top-bar .top-bar-title .video-title,
1018
- .video-wrapper:-webkit-full-screen .player-top-bar .top-bar-title .video-title,
1019
- .video-wrapper:-moz-full-screen .player-top-bar .top-bar-title .video-title {
1020
- font-size: 22px;
996
+
997
+ .play-from-start-btn .restart-icon {
998
+ display: inline-flex;
999
+ align-items: center;
1000
+ justify-content: center;
1021
1001
  }
1022
- .video-wrapper:fullscreen .player-top-bar .settings-control .settings-btn,
1023
- .video-wrapper:-webkit-full-screen .player-top-bar .settings-control .settings-btn,
1024
- .video-wrapper:-moz-full-screen .player-top-bar .settings-control .settings-btn {
1025
- padding: 12px;
1002
+
1003
+ .control-btn .icon {
1004
+ display: inline-flex;
1005
+ align-items: center;
1006
+ justify-content: center;
1026
1007
  }
1027
1008
 
1028
1009
  /* PROGRESS BAR */