myetv-player 1.6.3 → 1.6.5

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