/*
 * Copyright (C) 2009 Apple Inc.  All rights reserved.
 * Copyright (C) 2009 Google Inc.
 * Copyright (C) 2012 Zan Dobersek <zandobersek@gmail.com>
 * Copyright (C) 2012 Igalia S.L.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/* These are based on the Chromium media controls */

video::-webkit-media-controls-panel *:active,
video::-webkit-media-controls-panel *:focus,
audio::-webkit-media-controls-panel *:active,
audio::-webkit-media-controls-panel *:focus {
    background-image: linear-gradient(rgba(0, 0, 0, .05), rgba(255, 255, 255, .05)) !important;
}

audio::-webkit-media-controls-panel.down *:active,
audio::-webkit-media-controls-panel.down *:focus {
    background-image: linear-gradient(rgba(255, 255, 255, .05), rgba(0, 0, 0, .05)) !important;
}

audio::-webkit-media-controls-panel.hidden,
video::-webkit-media-controls-panel.hidden {
    display: none !important;
}

body:-webkit-full-page-media {
    background-color: rgb(0, 0, 0);
}

audio {
    width: 300px;
    height: 30px;
}

audio:-webkit-full-page-media, video:-webkit-full-page-media {
    max-height: 100%;
    max-width: 100%;
}

audio:-webkit-full-page-media::-webkit-media-controls-panel,
video:-webkit-full-page-media::-webkit-media-controls-panel {
    bottom: 0px;
}

::-webkit-media-controls {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
}

audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure {
    width: 100%;
    max-width: 800px;
    height: 30px;
    bottom: 0;
    text-indent: 0;
    padding: 0;
    box-sizing: border-box;
    overflow: visible;
}

video::-webkit-media-controls-enclosure {
    padding: 5px;
    height: 40px;
}

audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    bottom: auto;
    height: 30px;
    background-color: rgba(20, 20, 20, 0.8);
    border-radius: 5px;
    overflow: visible;
    transition: opacity 0.25s linear;
}

video::-webkit-media-controls-panel {
    opacity: 0;
}

audio::-webkit-media-controls-panel,
video:-webkit-full-page-media::-webkit-media-controls-panel.no-video,
video::-webkit-media-controls-panel:hover,
video::-webkit-media-controls-panel.show,
video::-webkit-media-controls-panel.paused {
    opacity: 1;
}

video::-webkit-media-controls-panel div.mute-box,
audio::-webkit-media-controls-panel div.mute-box {
    display: flex;
    flex: none;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    margin: 0 9px 0 -7px;
}

audio::-webkit-media-controls-panel div.mute-box.hidden,
video::-webkit-media-controls-panel div.mute-box.hidden {
    display: none !important;
}

audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
    -webkit-appearance: media-mute-button;
    display: flex;
    flex: none;
    border: none;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    line-height: 30px;
    outline: none;
}

audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button {
    -webkit-appearance: media-play-button;
    display: flex;
    flex: none;
    border: none;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    line-height: 30px;
    margin: 0 9px;
    outline: none;
}

/* Paused classes for audio/video controls should be defined to make a difference in style from not having this class. Otherwise a repaint would not happen. */
audio::-webkit-media-controls-play-button.paused,
video::-webkit-media-controls-play-button.paused {
    position: relative;
}

audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display,
audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
    -webkit-appearance: media-current-time-display;
    -webkit-user-select: none;
    flex: none;
    display: block;
    border: none;
    cursor: default;

    height: 30px;
    margin: 0 15px 0 0;

    line-height: 30px;
    font-family: -webkit-small-control;
    font-size: 13px;
    font-weight: normal;
    font-style: normal;
    color: white;

    letter-spacing: normal;
    word-spacing: normal;
    text-transform: none;
    text-indent: 0;
    text-shadow: none;
    text-decoration: none;
}

audio::-webkit-media-controls-current-time-display.hidden,
video::-webkit-media-controls-current-time-display.hidden,
audio::-webkit-media-controls-time-remaining-display.hidden,
video::-webkit-media-controls-time-remaining-display.hidden {
    display: none !important;
}

audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline {
    -webkit-appearance: media-slider !important;
    display: flex !important;
    flex: 1 1 auto !important;
    height: 8px !important;
    margin: 0 15px 0 1px !important;
    padding: 0 !important;
    background-color: transparent !important;
    min-width: 25px !important;
    border-radius: 4px !important;
    color: rgba(230, 230, 230, 0.35) !important;
    outline: none !important;
}

audio::-webkit-media-controls-timeline[disabled], video::-webkit-media-controls-timeline[disabled] {
    opacity: 0.3 !important;
}

audio::-webkit-media-controls-timeline.hidden,
video::-webkit-media-controls-timeline.hidden {
    display: none !important;
}

audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container {
    -webkit-appearance: media-volume-slider-container;
    display: flex;
    overflow: hidden;
    position: absolute;
    padding: 0;
    height: 100px;
    width: 30px;
    bottom: 30px;
    z-index: 2;
    background-color: rgba(20, 20, 20, 0.8);
    right: 9px;
    border-radius: 5px 5px 0px 0px;
    transition: height 0.10s linear;
}

audio::-webkit-media-controls-volume-slider-container.hiding,
video::-webkit-media-controls-volume-slider-container.hiding {
    height: 0;
}

audio::-webkit-media-controls-volume-slider-container.down,
video::-webkit-media-controls-volume-slider-container.down {
    bottom: -100px;
    border-radius: 0px 0px 5px 5px;
    transition: height 0.10s linear, bottom 0.10s linear;
}

audio::-webkit-media-controls-panel .hiding.down,
video::-webkit-media-controls-panel .hiding.down {
    bottom: 0;
}

audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
    -webkit-appearance: media-volume-slider !important;
    display: flex !important;
    align-items: center !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    height: 80px !important;
    width: 8px !important;
    margin: 10px auto !important;
    border-radius: 4px !important;
    background-color: transparent !important;
    color: rgba(230, 230, 230, 0.35) !important;
    outline: none !important;
}

audio::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-container > div, video::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-container > div {
    margin: -7px 0;
}

audio::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-thumb, video::-webkit-media-controls-volume-slider-container input[type="range"]::-webkit-media-slider-thumb {
    -webkit-appearance: media-volume-sliderthumb;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    color: white;
    margin: 0;
}

input[type="range"]::-webkit-media-slider-container {
    display: flex;
    align-items: center;
    flex-direction: row; /* This property is updated by C++ code. */
    box-sizing: border-box;
    height: 100%;
    width: 100%;
    border: 1px solid rgba(230, 230, 230, 0.35);
    border-radius: 4px;
    background-color: transparent;
}

/* The negative right margin causes the track to overflow its container. */
input[type="range"]::-webkit-media-slider-container > div {
    margin-right: -14px;
}

input[type="range"]::-webkit-media-slider-thumb {
    -webkit-appearance: media-sliderthumb;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    color: white;
    margin-left: -7px;
    margin-right: -7px;
}

audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button {
    -webkit-appearance: media-toggle-closed-captions-button;
    display: flex;
    flex: none;
    border: none;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    line-height: 30px;
    margin: 0 9px 0 -7px;
    outline: none;
}

audio::-webkit-media-controls-toggle-closed-captions-button.hidden,
video::-webkit-media-controls-toggle-closed-captions-button.hidden {
    display: none !important;
}

video::-webkit-media-controls-closed-captions-container {
    -webkit-appearance: media-closed-captions-container;
    display: flex;
    position: absolute;
    bottom: 35px;
    z-index: 2;
    background-color: rgba(20, 20, 20, 0.8);
    border-radius: 5px 5px 0px 0px;
    overflow: hidden;
    max-width: -webkit-calc(100% - 48px); /* right + 10px */
    max-height: -webkit-calc(100% - 35px); /* bottom + 10px */
    cursor: default;
    font-family: -webkit-small-control;
    font-size: 10pt;
    font-weight: normal;
    font-style: normal;
    color: white;
    -webkit-user-select: none;
    transition: height 0.10s linear;
}

video::-webkit-media-controls-closed-captions-container.out {
    border-radius: 5px;
}

video::-webkit-media-controls-closed-captions-container.hidden {
    display: none !important;
}

video::-webkit-media-controls-closed-captions-container h3 {
    padding-top: 8px;
    margin: 0;
    padding-left: 17px;
    padding-right: 15px;
    font-size: 10pt;
    font-weight: bold;
    font-style: normal;
}

video::-webkit-media-controls-closed-captions-container ul {
    list-style-type: none;
    margin: 0 0 4px 0;
    padding: 4px 0 0 0;
}

video::-webkit-media-controls-closed-captions-container li {
    position: relative;
    color: white;
    margin: 0;
    padding-left: 17px;
    padding-right: 15px;
    padding-top: 0.15em;
    padding-bottom: 0.2em;
    box-sizing: border-box;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    outline: none;
}
video::-webkit-media-controls-closed-captions-container li.selected {
    background-color: rgba(230, 230, 230, 0.15);
}

audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button {
    -webkit-appearance: media-enter-fullscreen-button;
    display: flex;
    flex: none;
    border: none;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    line-height: 30px;
    margin: 0 9px 0 -7px;
    outline: none;
}

audio::-webkit-media-controls-fullscreen-button.hidden,
video::-webkit-media-controls-fullscreen-button.hidden {
    display: none !important;
}
