* {
	padding: 0;
	margin: 0;
}

body {
	margin: 20px;
	padding-bottom: 3em; /* room to scroll the last controls above the attribution */
	font-family: Verdana, Tahoma, Arial, sans-serif;
	font-size: 10pt;
}

canvas {
	margin-bottom: 1em;
}

h2 {
	display:table-cell;
	vertical-align: middle;
	font-family: Verdana, Tahoma, Arial, sans-serif;
	font-size: 12pt;
	height: 30px;
	line-height: 30px;
}

embed {
	vertical-align: middle;
}

#master_graph {
	margin-top:  1em;
}

.display_width_labels {
	text-align: center;
}

.channel_controls input[type='range'] {
	margin-left:5%;
	margin-right:5%;
	width: 90%;
}

.channel_controls {
	width: 100%;
	text-align: center;
}

.graph { 
	width: 100%;
	height: 100px;
	border: 1px solid black; 
	border-radius: 10px;
} 

.button:hover {
	border: 1px solid black;
	padding: 4;
	border-radius: 5px;
}

.button {
	padding: 5px;
	margin: 1px;
}

.channel {
	margin-top: 10px;
}

.label::after {
	content: ":";
}

.value_display {
	font-family: Verdana, Tahoma, Arial, sans-serif;
	font-size: 10pt;
	text-align: right;
	border: none;
}

.width_display {
	width: 3em;
}

.frequency_display {
	width: 3em;
}

.amplitude_display {
	width: 3em;
}

.phase_display {
	width: 2em;
}

.unit_display {
	color: #aaaaaa;
}

.frequency_range {
	width: 100%;
}

.amplitude_range {
	width: 100%;
}

.phase_range {
	width: 100%;
}

/* GLF attribution: a small bar floating at the bottom of the screen, styled
   like the therealglf.org site footer (Quicksand, 9pt, grey, dashed links). */
.attribution {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	padding: 5px 10px;
	text-align: center;
	font-family: Quicksand, "Trebuchet MS", sans-serif;
	font-size: 9pt;
	line-height: 1.4;
	color: #888888;
	background: rgba(255, 255, 255, 0.9);
}
.attribution a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dashed #aaaaaa;
}
.attribution a:hover {
	color: #000000;
	border-bottom-color: #000000;
}

/* Narrow (phone) screens: one control per row instead of three columns.
   The controls table has a row of labels above a row of sliders; the grid
   below re-pairs each label with its slider (label 1, slider 1, label 2, ...)
   so the three columns become a single column. */
@media (max-width: 600px) {
	.channel_controls {
		display: grid;
		grid-template-columns: 100%;
	}
	.channel_controls tbody,
	.channel_controls tr {
		display: contents;
	}
	/* No display on td: grid items are blockified anyway, and setting it
	   here would outrank the .multichannel rule that hides the phase cells
	   in single-channel mode. */
	.channel_controls td {
		white-space: nowrap;
	}
	.channel_controls tr:first-child td:nth-child(1) { grid-row: 1; }
	.channel_controls tr:last-child  td:nth-child(1) { grid-row: 2; }
	.channel_controls tr:first-child td:nth-child(2) { grid-row: 3; }
	.channel_controls tr:last-child  td:nth-child(2) { grid-row: 4; }
	.channel_controls tr:first-child td:nth-child(3) { grid-row: 5; }
	.channel_controls tr:last-child  td:nth-child(3) { grid-row: 6; }
	.channel_controls input[type='range'] {
		margin-bottom: 0.5em;
	}
}
