sk-app {
	display: block;
	height: 100dvh;
	overflow: hidden;
}

sk-lesson-selection,
sk-lesson-display {
	display: block;
	height: 100%;
	min-height: 0;
	overflow: auto;
}

/* Icons: sk-components and this app build SVGs through common/icons.js */
.svg-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.2em;
	height: 1.2em;
	max-width: 1.2em;
	max-height: 1.2em;
	fill: currentColor;
}

.svg-icon > svg {
	width: 100%;
	height: 100%;
}

/* List rows built from buttons behave like the framework's anchor rows */
.list > li > button {
	width: 100%;
	max-width: 40rem;
	margin: 0;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: var(--space-md);
	padding: var(--space-sm);
	background-color: transparent;
	border: 0;
	color: inherit;
	font-size: inherit;
	font-weight: 300;
	text-align: start;
	white-space: nowrap;
	cursor: pointer;
	transition: color var(--transition-fast);
}

.list > li > button:hover {
	color: var(--color-accent-hover);
}

.list > li > button:active {
	color: var(--color-accent);
}

.list > li > button > .svg-icon {
	flex-shrink: 0;
	width: 2em;
	height: 2em;
	max-width: 2em;
	max-height: 2em;
	background-color: var(--color-surface);
}

.list > li > button > .svg-icon > svg {
	width: 1.4em;
	height: 1.4em;
	fill: var(--color-accent);
}

/* Audio controls */
sk-audio-controls .controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-md);
}

sk-audio-controls input[type='range'] {
	min-width: 6rem;
}

sk-audio-controls input[type='range'].seek {
	flex: 1 1 12rem;
}

/* Lesson display */
sk-lesson-display .lesson-header h1 {
	margin-bottom: 0;
}

sk-lesson-display .language-controls {
	flex-wrap: wrap;
}

sk-lesson-display .language-controls label {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	font-size: var(--font-size-sm);
}
