.jsvp-container {
  max-width: 100%;
  position: relative;
}

/* Show timeline/time controls before first play (Video.js hides control bar by default until vjs-has-started). */
.jsvp-container .video-js:not(.vjs-has-started):not(.vjs-using-native-controls):not(.vjs-controls-disabled):not(.vjs-error) .vjs-control-bar {
  display: flex;
}

/* Quality selector menu */
.vjs-quality-selector .vjs-icon-placeholder::before {
  content: '\f110';
  font-family: 'VideoJS', sans-serif;
}

.vjs-quality-selector .vjs-menu .vjs-menu-content {
  max-height: 15em;
}

.vjs-quality-selector .vjs-menu-item.vjs-selected {
  font-weight: 700;
  background-color: rgba(255, 255, 255, 0.15);
}

.vjs-quality-selector .vjs-menu-item:hover,
.vjs-quality-selector .vjs-menu-item:focus {
  background-color: rgba(255, 255, 255, 0.25);
}

/* Download button */
.vjs-download-button .vjs-icon-placeholder::before {
  content: '\2913';
  font-size: 1.6em;
  line-height: 1.67;
}

/* Ad badge overlay */
.jsvp-ad-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 5;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: rgba(0, 0, 0, 0.7);
  border-radius: 3px;
  pointer-events: none;
}

/* Mobile touch targets */
@media (pointer: coarse) {
  .vjs-quality-selector .vjs-menu-item,
  .vjs-download-button {
    min-height: 44px;
    min-width: 44px;
  }
}

/* Double-tap seek ripple */
.jsvp-seek-ripple {
  position: absolute;
  top: 0;
  width: 40%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 20;
  animation: jsvp-ripple-fade 0.6s ease-out forwards;
}

.jsvp-seek-left {
  left: 0;
  border-radius: 0 50% 50% 0;
  background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.25), transparent 70%);
}

.jsvp-seek-right {
  right: 0;
  border-radius: 50% 0 0 50%;
  background: radial-gradient(circle at 70% 50%, rgba(255,255,255,0.25), transparent 70%);
}

.jsvp-seek-arrows {
  font-size: 28px;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
  letter-spacing: -4px;
}

.jsvp-seek-label {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0,0,0,0.6);
  margin-top: 4px;
}

@keyframes jsvp-ripple-fade {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}

/* Nonlinear / pauseroll: above WebKit video compositing (Safari stacks video above siblings). */
.jsvp-pauseroll-overlay,
.jsvp-nonlinear-overlay {
  z-index: 100 !important;
}
