/* pianod web client - communication class
   Copr. 2013-2017 Perette Barella/Devious Fish
   All rights reserved.
*/
@charset "UTF-8";

/* Default/general setup */
body {
	font-family: sans-serif;
	line-height: 1.3;
}
table {
	border-collapse: collapse;
}
.note {
	font-size: 80%;
}
.add {
	color: green;
}
.remove {
	color: red;
}
h1 {
	font-size:110%;
	margin:0 0 0.5ex 0;
}
h2, h3 {
	font-size:100%;
	margin: 0 0 0.5ex 0;
}
#footer {
	display:none;
}
.error {
	color:red;
}
label + select,
label + input {
	display:block;
	margin-bottom:1ex;
	width:90%;
}
label > span {
	margin-left: 2em;
	font-size: small;
}
input[type=radio] {
	display: inline;
	width: auto;
}
input[type=radio] + label {
	display: inline;
}
input[type=radio]:disabled + label {
	opacity: 0.3;
}

.pager {
	width:100%;
	padding:0.5ex;
}
.pagenumber {
	display:block;
	float:right;
}
ul.actions {
	list-style-type: none;
	padding-left: 0;
}
div.accordion ul.actions {
	padding-left: 1em;
}
ul.actions li {
	margin: 1ex 0;
}
div.actiongrouping {
	border: thin solid black;
	margin: 0.5ex;
	padding: 1ex;
	border-radius: 0.5ex;
}
div.actiongrouping > p:first-child {
	margin-top: 0;
	font-weight: bold;
	margin-bottom: 0.5ex;
}

/* Pop-up related styles */
div.popup {
	display: none;
	background: black;
	position: fixed;
	left: 1em;
	right: 1em;
	top: 2em;
	border: thin solid #aaa;
	border-radius: 1ex;
	z-index: 6;
	overflow-y: scroll;
	max-height: 90%;
	max-width: 55ex;
	margin-left: auto;
	margin-right: auto;
	color: white;
}
div.popup > div {
	padding: 0 1ex;
}
div.popup > div > a.close {
	color: #f33;
	float: right;
	cursor: pointer
}
div.popup div.actiongrouping {
	border-color: white;
}
div.popup div.rangewrap {
	background-color: #888;
	border-radius: 5px;
	margin-bottom: 1ex;
}
div.popup div.rangewrap.disabled {
	background-color: #333;
}


#diagnostics {
	margin-top: 1ex;
	color: black;
	z-index: 8;
}
#diagnostics.warn {
	background: yellow;
}
#diagnostics.error {
	background: #f44;
	color: yellow;
}
#diagnostics.success {
	background: #cfc;
}

/* Navigation: buttons and accordions (h3) */
a.disabled,
a[href=''] {
	text-decoration: none;
}
a {
	color: blue;
}
a:not(.button):hover {
	text-decoration: underline;
}
a.button:hover,
h3:hover {
	border-color: black;
}
a.disabled span.value,
a[href=''] span.value {
	color: black;
	text-decoration: none;
	pointer-events: none;
}

h3,
a.button,
.columns-1 table.scrolling > thead th {
	padding: 0.2ex 0.5ex;
	margin: 0 1px;
	white-space: nowrap;
	border: thin solid #888;
	background: #ccc;
	border-radius: 0.8ex;
	cursor: pointer;
	color: black;
	text-decoration: none;
}
ul.actions a.button {
	display: block;
	width: 90%;
}
h3 {
	font-weight:normal;
	width: 90%;
	padding:0.5ex 4%;
	margin:1ex 0 0;
}
h3 + div {
	display: none;
}
h3.selected + div {
	display: block;
}	
h3:before {
	content: '\25b6  ';
}
h3.selected:before {
	content: '\25bc  ';
}
h3.disabled,
.button.disabled,
.playpause.disabled {
	opacity: 0.3;
	pointer-events: none;
}
.button.selected {
	color: green;
}

/* Ratings widgets */
.ratingwidget {
	position: relative;
}
.ratingwidget > span {
	position: absolute;
	white-space: nowrap;
}
.ratingwidget > span > span {
	visibility: inherit;
}
.ratingwidget > .outline {
	color: #aaa;
}
.ratingwidget > span.spacer {
	position: static;
	visibility: hidden;
}
.ratingwidget > span.rated05 > span.value:after { content: '\00bd'; }
.ratingwidget > span.rated10 > span.value:after { content: '\2605'; }
.ratingwidget > span.rated15 > span.value:after { content: '\2605 \00bd'; }
.ratingwidget > span.rated20 > span.value:after { content: '\2605 \2605'; }
.ratingwidget > span.rated25 > span.value:after { content: '\2605 \2605 \00bd'; }
.ratingwidget > span.rated30 > span.value:after { content: '\2605 \2605 \2605'; }
.ratingwidget > span.rated35 > span.value:after { content: '\2605 \2605 \2605 \00bd'; }
.ratingwidget > span.rated40 > span.value:after { content: '\2605 \2605 \2605 \2605'; }
.ratingwidget > span.rated45 > span.value:after { content: '\2605 \2605 \2605  \2605\00bd'; }
.ratingwidget > span.rated50 > span.value:after { content: '\2605 \2605 \2605 \2605 \2605'; }

#sourcepicker {
	float: right;
	margin-right: 1em;
}

#switcher {
	background: #bbb;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 4;
}
#switcher.disabled {
	display: none;
}
#switcher a {
	background: #bbb;
	color: black;
}
#switcher a:hover {
	background: #ddd;
	text-decoration: none;
}
#switcher a.hidden {
	display: none;
}
#switcher:not(.collapse) a {
	padding: 0.25ex 0.5ex;
	float: left;
	border: 1px solid black;
	margin-left: -1px;
}
#switcher.collapse > div {
	z-index: 5;
	border: thin solid black;
}
#switcher > div > a {
	display: block;
}
#switcher.collapse > div > a {
	padding: 1ex;
}

/* View management */
#views {
	clear: both;
	display: -webkit-flex;
	display: flex;
	margin-top:2em;
}
#switcher.collapse + #views {
	margin-top: 1.3em;
}
#views > div {
	padding:5px;
	position:relative;
}
.columnar {
	columns: 220px auto;
	-webkit-columns: 220px auto;
	margin: 0.5ex 0;
}

/* Status message area below views */
#status {
	clear:left;
}
#status #showerrors {
 	display:none;
}
#status.error #showerrors {
	display: inline;
	color: white;
	background-color: red;
	padding: 0.5ex 1ex;
	border-radius: 1.5ex;
}



/* Track view pagers, track controls */
#trackviewtitle {
	width:100%;
	padding:0.5ex;
}
#previoustrack,
#nexttrack {
	position:absolute;
	visibility:visible;
	bottom:4em;
	color:white;
	background:rgba(0, 0, 0, 0.4);
}
#previoustrack {
	left: 5%;
}
#nexttrack {
	right: 5%;
}

/* Track view */
#playlistname {
	width: 27ex;
}
#trackview {
	background-color:#ddf;
	background: linear-gradient(30deg, #bbf, #ddf);
	background-repeat: repeat;
}
.trackcontrols { /* Play/pause, skip */
	float:right;
	margin-right:3px;
}
#albumcover {
	position:relative;
	visibility:visible;
}
#albumart {
	width: 96%;
	background: black;
	padding: 4px;
	height: auto;
}

#why,
.statusoverlay,
#controller {
	position: absolute;
	width:214px;
	left: 0;
	right: 0;
	margin-left: auto;
	margin-right: auto;
	padding:3px;
	border-radius:1ex;
	background: rgba(0,0,0,.4);
	text-align:center;
}
.statusoverlay {
	width:90%;
	left:4%;
	top:10px;
	color:white;
}
.statusoverlay span {
	font-size: 300%;
}
#why {
	display: none;
	width: auto;
	top: 10px;
	left: auto;
	right: 10px;
	color: white;
	min-width: 1em;
}

#controller { /* Ratings controller */
	bottom:21px;
	text-align: center;
	white-space: nowrap;
}
#controller .button {
	font-size: 120%;
	min-width: 5em;
	border-radius: 1ex;
}

#timepoint, #duration { /* Time display at bottom of album art */
	font-size:70%;
	color:#fff;
}
#statusbar { /* The background of the progress bar */
	margin-top:3px;
	position:relative;
	left: 5%;
	width:90%;
	height:3px;
	background:#ccc;
}
#progressbar { /* The progress of the status bar */
	height:3px;
	background:#A4F;
}

.button.seed {
	display:block;
	float:right;
}
#trackdetails > div {
	clear:right;
}
input[type=range] {
	width: 98%;
	margin-left:1%;
}

/* Activity View */
#activityview {
	background:#ffe;
	background: linear-gradient(30deg, #eec, #ffe);
}
#yellmessage {
	width: 95%;
}
#recentactivity {
	list-style-position: inside;
	padding-left: 0;
	margin: 0.3ex;
}
#views.single #recentactivity {
	height: auto !important;
}


/* Playlist View */
#playlistview {
	background:#efe;
	background: linear-gradient(30deg, #cfc, #efe);
}
.pending {
	color: red;
}
#playlistlist {
	list-style-type: none;
	padding-left: 0;
}
#playlistlist label:hover {
	text-decoration: underline;
}
#playlistlist input,
#playlistlist span.button {
	display:none;
}
#playlistlist.showmix input {
	display: inline;
}
#playlistlist.showratings {
	line-height: 1.6;
}
#playlistlist.showratings span.button {
	display: inline;
}
#playlistlist.showratings.disabled span.button {
	opacity: 0.7;
}
#playlistlist.showratings.disabled label {
	color: #888;
}

/* Queue view */
#queueview {
	background:#eee;
	background: linear-gradient(30deg, #ccc, #eee);
}
#queueview.columns-1 thead {
	display: none;
}

tr.past {
	color: #888;
}
tr.past a:not(.button) {
	color: #88f;
}
tr.present {
	font-weight: bold;
}

/* User view */
#userview {
	background: #fee;
	background: linear-gradient(30deg, #ecc, #fee);
}
ul.privilegelist {
	margin-top:0;
	padding-left:0;
	list-style-type: none;
}
ul.privilegelist li {
	margin: 0;
}
#onlineusers li:hover {
	text-decoration: underline;
}

/* Searchview */
#searchview {
	background: #eef;
	background: linear-gradient(30deg, #ccf, #eef);
}
#searchview > label {
	clear: both;
	float: left;
	display: inline-block;
	width: 6em;
}
#searchview > select,
#searchview > input {
	max-width: 20em;
	width: auto;
}
#searchview:not(.columns-1) > input {
	max-width: 60em;
}

/* SeedView */
#seedview {
	background:#eff;
	background: linear-gradient(30deg, #cee, #eff);
}

/* If single pane, let whole window scroll */
#views:.single .scrolling {
	display:block;
	height: auto !important;
}

/* Scrolling element, likely list or table */
#views:not(.single) .scrolling {
	overflow-y: scroll;
	display: block;
}

/* Adjust table rendering for narrow layouts */
.columns-1 table.scrolling {
	width: 100% !important;
}
.columns-1 table.scrolling tr {
	display: block;
	width: 100%;
}
.columns-1 table.scrolling tr:nth-child(even) {
	background: white;
}
.columns-1 table.scrolling td
{
	display: block;
}
.columns-1 table.scrolling > thead th {
	display: inline;
	white-space: normal;
}
.columns-1 table.scrolling td:empty
{
	display: none;
}

