/**
 * Copyright 2013 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

body,html {
	text-align: center;
	overflow-x: hidden;
	padding-bottom: 15px;
    margin: 0;
    background: linear-gradient(to right bottom, #0b4e5e, #07546f, #127599, #046e86, #153659);
    /* background: linear-gradient(to right bottom, #108a8f, #009999, #00c2bc, #03c9bb, #05dec8); */
    height: 100%;
    box-sizing: border-box;
}

a:link {
  text-decoration: none;
  color:inherit;
  font-weight: bold;
}

a:link:hover {
  text-decoration: underline;
}

.main-container {
    border: 1px solid #eee;
    border-radius: 7px;
    overflow: hidden;
    margin: auto;
    width: 80vw;
    max-width: 1024px;
    margin-top: 40px;
}
.banner-filler {
    flex-grow: 1;
}
.signedOut .signin {
    display: inline-block;
}

.account {
    display: none;
    flex-direction: column;
    font-family: sans-serif;
    gap: 5px;
    margin-right: -20px;
    display: flex;
    height: 100%;
    justify-content: center;
    border-left: 1px solid white;
    padding-left: 20px;
    background-color: #122e3b70;
    backdrop-filter: blur(5px);
    padding-right: 20px;
}
.avatar {
    height: 40px;
    width: 40px;
    background-size: cover;
    border-radius: 40px;
    border: 2px solid white;
}
.avatar-name {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    text-align: start;
}
.name {
    font-weight: 600;
}
.button-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 11px;
    margin: 25px 0;
    text-align: center;
}
.signin.button,
.signin.white-button {
    display: inline-block;
    border: 1px solid #333;
    padding: 5px 10px;
    border-radius: 5px;
    background-image: url(../images/google-logo.png);
    background-repeat: no-repeat;
    background-position: 10px;
    background-size: 20px;
    padding-left: 38px;
    line-height: 1.5em;
    text-align: center;
}
.signin.white-button {
    border: 1px solid #e6e6e6ee;
    background-color: #00000033;
}
.signout, .signin {
    cursor: pointer;
    text-align: right;
}
.signout:hover, .signin:hover {
    text-decoration: underline;
}

@keyframes glowing {
    0% {
        background-color: #eee;
    }
    50% {
        background-color: #efefb3;
    }
    100% {
        background-color: #eee;
    }
}

.banner {
    background: rgba(0,0,0,0.2) url('../images/background-effect-dark.png');
    width: 100%;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: left;
    font-optical-sizing: auto;
    padding-right: 20px;
    color: #e6e6e6ee;
    box-sizing: border-box;
    background-size: 50%;
    background-position-x: 50%;
}

.logo-text {
    font-family: 'Concert One', sans-serif;
    text-align: right;
    line-height: 32px;
    font-size: 35px;
    font-weight: 700;
    text-shadow: 2px 3px 2px rgb(92, 92, 92);
    padding-right: 20px;
}

.logo {
    background: url(../images/icon_128.png) no-repeat;
    filter: invert(1);
    height: 128px;
    width: 128px;
    margin-right: -9px;
    margin-top: 4px;
    background-size: contain;
    min-width: 128px;
}

.help {
    font-family: 'Roboto', sans-serif;
    color: #ffffff82;
    font-weight: 200;
    font-size: 12px;
    width: 640px;
    margin: auto;
    margin-top: 35px;
    margin-bottom: 35px;
    padding: 30px;
    padding-top: 10px;
    box-sizing: border-box;
    border-radius: 5px;
}

.help.highlight {
    background-color: #FFF3A2;
}
.help.highlighted {
    background-color: #eee;
    transition: background-color 2s;
    color: #4c4c4c;
}
.help .shortcut {
    display: inline-block;
}
.help .small-title {
    margin-top: 20px;
    margin-bottom: 7px;
    font-weight: bold;
}
.help .lastfm {
  margin-top: 20px;
}
.help .material-icons {
    font-size: 12px;
}
#jp_container_1 {
    overflow: hidden;
    border: 0;
    box-sizing: border-box;
    width: 100%;
}

.song {
	font-size: 14px;
	background-color: #DDD;
	cursor: pointer;
	text-decoration: none;
	color: #555;
	text-align: left;
	transition: background-color 0.2s linear;
	-moz-transition: background-color 0.2s linear;
	-webkit-transition: background-color 0.2s linear;
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 40px 40px;
    height: 45px;
}

.song:HOVER {
	/*background-color: #BBB !important;*/
}

.song.playing {
	font-weight: bold;
    background-color: rgb(179, 209, 255) !important;
}
.song .moveindicator {
	width: 15px;
	padding-right: 0 !important;
    min-width: 15px;
    cursor: url("../images/openhand.cur") 7 5, default !important;
}
.song:HOVER .moveindicator {
	background: url("../images/grippy_large.png") no-repeat 1px;
}
.song:nth-child(even):HOVER .moveindicator {
    background: url("../images/grippy_large_dark.png") no-repeat 1px;
    opacity: 0.8;
}

.song.add {
	padding: 14px 0 13px 0;
	border-top: none;
	background-color: #EEE;
	text-align: center;
	border-top: 1px #BBB solid;
	width: 90%;
	float: left;
	margin-right: -3px;
	height: 29px;
    font-weight: 600;
}

.song.add.empty {
    animation: glowing 2300ms infinite;
}

.song.add img {
	height: 25px;
	padding-right: 15px;
    margin-bottom: -6px;
    margin-right: -10px;
    top: 1px;
    position: relative;
}

.song.add:HOVER, .create.playlist:HOVER {
	background-color: #BBB;
}
.create.playlist {
    padding: 15px 0;
    border-top: none;
    background-color: #EEE;
    text-align: center;
    border: #BBB solid;
    border-width: 1px 0 0 1px;
    width: 10%;
    float: right;
    cursor: pointer;
    height: 27px;
}
.create.playlist img {
	height: 18px;
}

.artist {
	color: #777;
	width: 35%;
	min-width: 35%;
	max-width: 35%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding: 7px 20px 7px 0;
}

.title {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	width: 65%;
	min-width: 65%;
	max-width: 65%;
	padding: 7px 20px 7px 0;
}

.header {
	font-size: 14px;
	display: block;
	text-align: left;
	border-top: #BBB 1px solid;
	padding-top: 3px;
	font-style: italic;
	background-color: #ccc;
	height: 41px;
}

.header td {
	line-height: 25px;
}

.fileContainer tr {
    background-size: 40px;
}

.trackCont {
	width: 100%;
	table-layout: fixed;
}

.coverCont {
	width:25px;
	min-width: 25px;
	max-width: 25px;
	height: 19px;
	background-size: 40px 40px;
	padding: 0px;
    background-size: cover;
    background-image: url('../images/default-cover.png');
}

.playindicator {
	width: 45px;
	height: 45px;
}

.headPlayIndicator {
	width: 19px;
	min-width: 19px;
	max-width: 19px;
	height: 19px;
}

.song.playing .playindicator {
    background: radial-gradient(at right bottom, #01010188, #01010100);
    position: relative;
}
.song.playing .playindicator::after {
    content: '';
    background-image: url(../images/wave.png);
    background-size: 23px 22px;
    background-repeat: no-repeat;
    background-position: bottom right;
    width: 22px;
    height: 20px;
    display: block;
    right: 2px;
    bottom: 3px;
    position: absolute;
    opacity: 0.85;
}
.playing .song.playing .playindicator::after {
    background-image: url(../images/wave.gif);
}

.remove {
	padding-right: 7px !important;
	font-weight: bold;
	background-color: #ccc;
	font-size: 16px;
	opacity: 0;
    transition: opacity 0.2s linear;
	-moz-transition: opacity 0.2s linear;
	-webkit-transition: opacity 0.2s linear;
	cursor: pointer;
	width: 17px;
	max-width: 17px;
	min-width: 17px;
	padding-left: 14px;
}

#empty {
	font-style: italic;
	font-size: 12px;
	text-align: left;
	background-color: #DDD !important;
    height: 45px;
}

#empty td {
	padding: 10px 50px 0 59px;
	line-height: 16px;
}

#empty span {
	vertical-align: top;
}

#empty td img {
	margin-left: 5px;
	margin-bottom: -20px;
	opacity: 0.8;
    visibility: hidden;
}

.song:HOVER .remove {
	opacity: 1;
	display: table-cell;
}

.remove:HOVER {
	background-color: rgb(255, 200, 104);
}

#playListControl .remove {
	height: 29px;
	display: inline-block;
	padding-left: 10px;
	padding-right: 5px !important;
	border-radius: 5px;
	float: right;
	margin-right: 5px;
	margin-top: 2px;
}

.fileContainer {
	width: 100%;
	border-spacing: 0;
}

.fileContainer td {
	padding-right: 20px;
}

.fileContainer tbody tr:nth-child(odd) {
	background-color: transparent;
}

.tracklist {
	overflow-y: auto;
	max-height: 26vh;
	display: block;
}

.tracklist::-webkit-scrollbar {
	height:14px;
	width:8px;
}

.tracklist::-webkit-scrollbar-button {
	height:0;
	width:0;
}

.tracklist::-webkit-scrollbar-button:vertical:start:increment,.tracklist::-webkit-scrollbar-button:vertical:end:decrement {
	display:none
}

.tracklist::-webkit-scrollbar-thumb {
	min-height:28px;
	background-color:rgba(0,0,0,.2);
	background-clip:padding-box;
	border:solid transparent;
	border-width:1px 1px 1px 6px;
	padding:100px 0 0;
	box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)
}

.tracklist::-webkit-scrollbar-thumb:hover {
	background-color:rgba(0,0,0,.4);
	box-shadow:inset 1px 1px 1px rgba(0,0,0,.25)
}

.tracklist::-webkit-scrollbar-thumb:active {
	background-color:rgba(0,0,0,0.5);
	box-shadow:inset 1px 1px 3px rgba(0,0,0,0.35)
}

.tracklist::-webkit-scrollbar-thumb:vertical {
	border:0 solid transparent;
	border-left:0px solid transparent
}

.tracklist::-webkit-scrollbar-track {
	background-clip:padding-box;
	border:solid transparent;
	border-width:0 0 0 0px;
	width: 16px;
}

.tracklist::-webkit-scrollbar-track:hover {
	background-color:rgba(0,0,0,0.035);
	box-shadow:inset 1px 0 0 rgba(0,0,0,.1);
}

.tracklist::-webkit-scrollbar-track:active {
	background-color:rgba(0,0,0,.05);
	box-shadow:inset 1px 0 0 rgba(0,0,0,.14),inset -1px 0 0 rgba(0,0,0,.07);
}

#subtitle {
	position: relative;
	top: -40px;
	left: 120px;
	font-family: sans-serif, "Arial";
	color: #444;
	letter-spacing: 1px;
}
.error {
    font-weight: normal !important;
    font-style: italic;
    font-size: 12px;
}
.error, .noID3tags {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	height: 22px;
}

#signedOut {
    text-align: left;
	width: 100%;
	background-color: white;
	z-index: 1000;
	height: 100%;
	font-family: sans-serif;
	font-size: 14px;
    padding: 20px;
    box-sizing: border-box;
}

#hider {
	position: absolute;
	top: 0;
	width: 100%;
	background-color: white;
	z-index: 1000;
	height: 100%;
	font-family: sans-serif;
	font-size: 16px;
}
#hider div {
	margin-top: 70px;
}

#hiderTrans {
	display: none;
    position: absolute;
    top: 0;
    width: 100%;
    background-color: black;
    opacity:0.4;
    z-index: 1000;
    height: 100%;
    font-family: sans-serif;
    font-size: 16px;
}
#hiderTrans div {
    margin-top: 70px;
}

.noID3tags {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
#flashAlert {
	display: none;
	font-family: sans-serif;
	position: absolute;
    background-color: rgb(100,100,100);
    background-color: rgba(0,0,0,0.6);
    color: #E33;
    z-index: 3000;
    width: 100%;
    left:0;
    top:0;
    height: 100%;
    font-size: 25px;
}
#flashAlert div {
	margin: 165px auto;
	background-color: white;
	padding: 20px;
	width: 920px;
}
#footer {
	position: fixed;
    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
    bottom: 0;
    margin-left: max(10vw, calc((100vw - 1024px) / 2));
	border: #ccc solid;
	border-width: 1px 1px 0 1px;
	background-color: #EEE;
	font-size: 12px;
	padding: 0 7px;
	color: #666;
	font-family: sans-serif;
	cursor: pointer;
    width: 80vw;
    max-width: 1024px;
    height: 37px;
    box-sizing: border-box;
    border-top-left-radius: 7px;
    border-top-right-radius: 7px;
}
#footer span,
#footer a {
    font-weight: unset;
    display: inline-block;
    color: #666;
    text-decoration: none;
    font-family: sans-serif;
    margin: 0 15px;
    padding: 10px 15px;
    cursor: pointer;
    line-height: 20px;
}
#footer span:hover,
#footer a:hover  {
    background-color: #ccc;
}
#footer .material-icons {
    font-size: 14px;
    top: 2px;
    position: relative;
}
#footer img {
    height: 14px;
    opacity: 0.7;
    margin-bottom: -2px;
}
/* Tooltips */

/* Styling for tooltips */

.ui-tooltip, .arrow:after {
   background: #444;
   border: 1px solid white !important;
}
.ui-tooltip {
  padding: 5px 10px;
  color: white;
  border-radius: 5px;
  font: 12px "Helvetica Neue", Sans-Serif;
}
.arrow {
  width: 35px;
  height: 8px;
  overflow: hidden;
  position: absolute;
  left: 50%;
  margin-left: -17px;
  bottom: -8px;
}
.arrow.top {
  top: -8px;
  bottom: auto;
}
.arrow.left {
  left: 75%;
}
.arrow.right {
  left: 25%;
}
.arrow:after {
  content: "";
  position: absolute;
  left: 10px;
  top: -10px;
  width: 12px;
  height: 12px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  tranform: rotate(45deg);
}
.arrow.top:after {
  bottom: -10px;
  top: auto;
 }
 #playListControl {
   background-color: #bbb;
   border-top: #bbb 0px solid;
   height: 0;
   overflow: hidden;
   transition: height 1s, border-top-width 1s;
   -webkit-transition: height border-top-width 1s, border-top-width 1s;
   -moz-transition: height border-top-width 1s, border-top-width 1s;
   text-align: left;
   padding-left: 12px;
   font-size: 18px;

 }

 #playListControl.show{
   border-top-width: 3px;
   height: 33px;
 }
 #playListControl img {
   height: 20px;
   margin-right: 13px;
   margin-top: 6px;
   float: left;
   opacity: 0.7;
 }
 #playlistNameContainer {
   float: left;
   padding: 2px 10px 1px 10px;
   margin-top: 3px;
   background-color: transparent;
   border-color: transparent;
   font-size: 18px;
   border-width: 0;
   height: 24px;
   color: #444;
   overflow: hidden;
   text-overflow: ellipsis;
   width: calc(100% - 100px);
 }
#playlistNameContainer:focus, #playlistNameContainer:HOVER {
   background-color: #ddd;
   border-radius: 2px;
 }
#playlistNameContainer:disabled, #playlistNameContainer:disabled:HOVER {
  background-color: transparent;
}
.jp-toggles {
	display: inline-block;
}
div.jp-interface ul.jp-controls li {
    margin-right: 10px;
}
div.jp-audio div.jp-type-single div.jp-progress,
div.jp-audio div.jp-type-single div.jp-time-holder {
    left: 180px;
}
div.jp-audio ul.jp-controls {
    width: 76vw;
}
div.jp-audio div.jp-type-single a.jp-mute,
div.jp-audio div.jp-type-single a.jp-unmute {
    margin-left: min(741px, calc(78vw - 265px));
}
div.jp-audio div.jp-volume-bar {
    left: min(912px, calc(78vw - 95px));
}
div.jp-current-time {
    text-align: left;
}
div.jp-current-time, div.jp-duration {
    width: auto;
}
div.jp-audio div.jp-type-single div.jp-time-holder,
div.jp-audio div.jp-type-single div.jp-progress {
    width: min(666px, calc(78vw - 340px));
}
@media (max-width: 650px) {
    .banner {
        height: 120px;
    }
    .logo {
        height: 100px;
        width: 100px;px;
        min-width: 100px;
    }
    .logo-text {
        line-height: 26px;
        font-size: 28px;
    }
    #signedOut {
        padding-top: 1px;
    }
    .name-email {
        display: none;
    }
    .main-container {
        margin-top: 0;
        width: 100%;
        border-radius: 0;
        border: 0;
        z-index: 1;
        position: relative;
    }
    .tracklist {
        max-height: calc(100vh - 345px);
    }
    #footer {
        width: 100%;
        margin-left: 0;
        left: auto;
        z-index: 1;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }
    #footer span {
        margin: 0 1%;
        padding-right: 2%;
        padding-left: 2%;
        height: 30px;
    }
    .help {
        position: fixed;
        width: 100%;
        padding-left: 15px;
        padding-right: 15px;
        margin-top: 15px;
        margin-bottom: 65px;
        border-radius: 0;
    }
    #buttonBar {
        position: fixed;
        width: 100%;
        bottom: 30px;
    }
    .song.add {
        padding-top: 15px;
        padding-bottom: 20px;
        width: 85%;
    }
    .create.playlist {
        width: 15%;
    }
    div.jp-audio ul.jp-controls {
        padding-left: 10px;
    }
    .song.add img {
        margin-bottom: -7px;
    }
    .artist {
        width: 35%;
        min-width: 35%;
        max-width: 35%;;
    }
    td.error.artist {
        white-space: normal
    }
    .title {
        width: 65%;
        min-width: 65%;
        max-width: 65%;
        white-space: normal;
    }
    .noID3tags, td.error {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
    }
    div.jp-audio div.jp-type-single div.jp-interface {
      height: 85px;
    }
    div.jp-audio div.jp-type-single div.jp-interface,
    div.jp-audio div.jp-type-single a.jp-mute,
    div.jp-audio div.jp-type-single a.jp-unmute {
        margin-left: 0;
    }
    div.jp-audio div.jp-type-single div.jp-progress,
    div.jp-audio div.jp-type-single div.jp-time-holder {
        right: 15px;
        width: auto;
        left: 150px;
    }
    #empty img {
        display: none;
    }
    #empty td {
        padding-bottom: 10px;
    }
    .remove {
        opacity: 1;
    }
    .help .keyboard {
        display:none;
    }
    div.jp-audio div.jp-type-single .jp-mute,
    div.jp-audio div.jp-type-single .jp-unmute,
    div.jp-audio div.jp-type-single .jp-volume-max,
    div.jp-audio div.jp-type-single .jp-volume-bar{
        display:none !important;
    }
    .picker, .picker-frame {
      width: 100% !important;
      height: 100% !important;
      position: fixed !important;
      top: 0 !important;
      left: 0 !important;
    }
}
