.file-page {
  .file-page__video-container + .card,
  .file-render + .card,
  .content__cover + .card,
  .card + .file-render,
  .card + .file-page__video-container,
  .card + .content__cover {
    margin-top: var(--spacing-large);
  }

  .card + .file-render {
    margin-top: var(--spacing-large);
  }

  .file-page__md {
    .card {
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
    }

    .card + .file-render {
      margin-top: 0;

      .card {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-left-radius: var(--border-radius);
        border-bottom-right-radius: var(--border-radius);
        border-top: none;
      }
    }
  }
}

.file-render {
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  max-height: var(--inline-player-max-height);
  border-radius: var(--card-radius);
}

.file-render--embed {
  border-radius: 0;
  position: fixed;
  max-height: none;
}

.file-render--document {
  max-height: none;
  overflow: auto;

  .markdown-preview {
    height: 100%;
    overflow: auto;
    width: 40em;
    margin-left: auto;
    margin-right: auto;
    max-width: unset;
    min-width: unset;

    @media (max-width: $breakpoint-small) {
      width: 100%;
      padding: var(--spacing-small);
    }
  }
}

.file-render__header {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.file-viewer {
  width: 100%;
  height: 100%;

  iframe,
  webview,
  img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    max-height: var(--inline-player-max-height);
  }
  video {
    cursor: pointer;
  }
  .video-js.vjs-fullscreen.vjs-user-inactive.vjs-playing {
    video {
      cursor: none;
    }
  }
}

.file-render__viewer--comic {
  position: relative;
  overflow: hidden;
  .comic-viewer {
    width: 100%;
    height: calc(100vh - var(--header-height) - var(--spacing-medium) * 2);
    max-height: var(--inline-player-max-height);
  }
}

.file-viewer--iframe {
  display: flex; /*this eliminates extra height from whitespace, if someone edits this with a better technique, tell Jeremy*/
  /*
  ideally iframes would dynamiclly grow, see <IframeReact> for a start at this
  for now, since we don't know size, let's make as large as we can without being larger than available area
  */
  iframe {
    height: calc(100vh - var(--header-height) - var(--spacing-medium) * 2);
  }
}

.file-render__viewer--three {
  position: relative;
  overflow: hidden;

  .three-viewer {
    height: calc(100vh - var(--header-height) - var(--spacing-medium) * 2);
    max-height: var(--inline-player-max-height);
  }
}

.file-viewer__overlay {
  position: absolute;
  left: auto;
  right: auto;
  height: 100%;
  width: 100%;
  z-index: 2;
  color: var(--color-white);
  font-size: var(--font-body); /* put back font size from videojs change*/

  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-large);

  @media (max-width: $breakpoint-small) {
    font-size: var(--font-small);
  }

  .button--uri-indicator,
  .button--link {
    color: var(--color-white);
  }
}

.content__viewer--floating {
  .file-viewer__overlay-title,
  .file-viewer__overlay-secondary {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
  }
}
@media (max-width: $breakpoint-small) {
  .file-viewer__overlay-title,
  .file-viewer__overlay-secondary {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
  }
}

.file-viewer__overlay-title {
  text-align: center;
  font-size: var(--font-large);
  margin-bottom: var(--spacing-medium);
}
.file-viewer__overlay-secondary {
  color: var(--color-text-subtitle);
  margin-bottom: var(--spacing-medium);
}
.file-viewer__overlay-actions {
  .button + .button {
    margin-left: var(--spacing-medium);
  }
}

.file-viewer__overlay-logo {
  color: var(--color-white);
  font-weight: bold;

  .icon {
    height: 30px;
    stroke-width: 5px;
  }
}

.file-viewer--is-playing:not(:hover) .file-viewer__embedded-header {
  display: none;
}

.file-viewer__embedded-header {
  position: absolute;
  display: flex;
  justify-content: space-between;
  width: 100%;
  top: 0;
  z-index: 2;
  font-size: var(--font-large);
  overflow-x: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background-repeat: repeat-x;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);

  .button {
    padding: var(--spacing-small);
    color: var(--color-white);

    .button__label {
      white-space: nowrap;
    }

    &:hover {
      color: var(--color-white);
    }
  }

  .credit-amount,
  .icon--Key {
    margin-right: var(--spacing-medium);
  }
}

.file-viewer__embedded-title {
  max-width: 75%;

  @media (max-width: $breakpoint-small) {
    font-size: var(--font-small);
  }
}

.file-viewer__embedded-info {
  display: flex;
  align-items: center;
  font-size: var(--font-small);
  margin-left: var(--spacing-medium);
  white-space: nowrap;

  & > *:not(:last-child) {
    margin-right: var(--spacing-small);
  }
}

.file-render__content {
  width: 100%;
  height: 100%;
  overflow: auto;
  max-width: 100vw;
}

//
// Custom viewers live below here
// These either have custom class names that can't be changed or have styles that need to be overridden
//

// Code-viewer
.CodeMirror {
  @extend .file-render__content;

  .cm-invalidchar {
    display: none;
  }

  .CodeMirror .CodeMirror-lines {
    // is there really a .CodeMirror inside a .CodeMirror?
    padding: var(--spacing-small) 0;
  }

  .CodeMirror-code {
    @include font-mono;
    letter-spacing: 0.1rem;
  }

  .CodeMirror-gutters {
    background-color: var(--color-gray-1);
    border-right: 1px solid var(--color-gray-4);
    padding-right: var(--spacing-medium);
  }

  .CodeMirror-line {
    padding-left: var(--spacing-medium);
  }

  .CodeMirror-linenumber {
    color: var(--color-gray-5);
  }
}

.video-js-parent {
  height: 100%;
  width: 100%;
}

.video-js-parent--ios {
  .vjs-control-bar {
    display: none;
  }
}

// By default no video js play button
.vjs-big-play-button {
  display: none;
}

.video-js {
  height: 100%;
  width: 100%;

  .vjs-modal-dialog .vjs-modal-dialog-content {
    position: relative;
    padding-top: 5rem;
    // Make sure no videojs message interferes with overlaying buttons
    pointer-events: none;
  }

  .vjs-control-bar {
    .vjs-remaining-time {
      display: none;
    }

    .vjs-current-time,
    .vjs-time-divider,
    .vjs-duration {
      display: flex;
    }
  }
}

.video-js:hover {
  .vjs-big-play-button {
    background-color: var(--color-primary);
  }
}

.file-render {
  .video-js {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .vjs-big-play-button {
    @extend .button--icon;
    @extend .button--play;
    border: none;
    position: static;
    z-index: 2;

    .vjs-icon-placeholder {
      display: none;
    }
  }
}

.file-render--embed {
  // on embeds, do not inject our colors until interaction
  .video-js:hover {
    .vjs-big-play-button {
      background-color: var(--color-primary);
    }
  }

  .vjs-paused {
    .vjs-big-play-button {
      display: block;
      background-color: rgba(0, 0, 0, 0.6);
    }
  }

  .vjs-ended {
    .vjs-big-play-button {
      display: none;
    }
  }
}

.file-viewer--ended-embed .vjs-big-play-button {
  display: none !important; // yes this is dumb, but this was broken and the above CSS was overriding
}

.autoplay-countdown {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.autoplay-countdown__timer {
  width: 100%;
  text-align: center;
  font-size: var(--font-small);
}
.autoplay-countdown__counter {
  margin-top: var(--spacing-medium);
}

.autoplay-countdown__button {
  /* Border size and color */
  border: 3px solid transparent;
  /* Creates a circle */
  border-radius: 50%;
  /* Circle size */
  display: inline-block;
  height: 86px;
  width: 86px;
  /* Use transform to rotate to adjust where opening appears */
  transition: border 1s;
  transform: rotate(45deg);
  .button {
    background-color: transparent;
    transform: rotate(-45deg);
    &:hover {
      background-color: var(--color-primary);
    }
  }
}
.autoplay-countdown__button--4 {
  border-top-color: #fff;
}
.autoplay-countdown__button--3 {
  border-top-color: #fff;
  border-right-color: #fff;
}
.autoplay-countdown__button--2 {
  border-top-color: #fff;
  border-right-color: #fff;
  border-bottom-color: #fff;
}
.autoplay-countdown__button--1 {
  border-color: #fff;
}
