:root {
	color-scheme: dark;
	font:
		18px / 1.5 system-ui,
		sans-serif;
	color: #f4f6fa;
	background: #101419;
}
* {
	box-sizing: border-box;
}
body {
	margin: 0;
}
button,
input {
	font: inherit;
}
button {
	min-height: 48px;
	min-width: 48px;
	border: 1px solid #3a4656;
	border-radius: 10px;
	background: #202a36;
	color: inherit;
	cursor: pointer;
}
button:hover {
	background: #303e50;
}
button:focus-visible,
input:focus-visible,
a:focus-visible {
	outline: 3px solid #9abaff;
	outline-offset: 3px;
}
header {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 20px 32px;
	border-bottom: 1px solid #303c4c;
	background: #171e27;
}
.brand {
	font-size: 30px;
	font-weight: 750;
	letter-spacing: -1px;
	text-decoration: none;
	color: inherit;
}
.brand span {
	color: #a6c1ff;
}
.brand small {
	font-size: 12px;
	letter-spacing: 2px;
	color: #9eb4d6;
}
.badge {
	color: #a7b9d3;
	font-size: 15px;
}
#app-fullscreen {
	margin-left: auto;
	font-size: 30px;
}
main {
	max-width: 1600px;
	margin: auto;
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 28px;
	padding: 28px;
}
aside {
	background: #18212c;
	border: 1px solid #303e50;
	border-radius: 16px;
	padding: 18px;
	align-self: start;
}
nav {
	display: flex;
	gap: 8px;
	margin-bottom: 22px;
}
nav button {
	flex: 1;
	font-size: 17px;
}
nav [aria-pressed="true"] {
	background: #a6c1ff;
	color: #111c30;
	border-color: #a6c1ff;
}
label {
	font-size: 14px;
	color: #b2c1d6;
}
input {
	width: 100%;
	margin: 8px 0 20px;
	background: #101822;
	border: 1px solid #41536c;
	border-radius: 9px;
	padding: 12px;
	color: inherit;
}
.channel {
	display: flex;
	gap: 8px;
	margin-bottom: 10px;
}
.channel .select {
	flex: 1;
	text-align: left;
	padding: 14px 12px;
	min-height: 62px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.number {
	color: #a5b5cd;
	font-size: 14px;
}
.channel.active .select {
	background: #263d60;
	border-color: #9abaff;
}
.favorite {
	align-self: stretch;
	font-size: 26px;
	color: #b7c3d7;
}
.favorite[aria-pressed="true"] {
	color: #ffd34f;
}
.view {
	min-width: 0;
}
#player {
	position: relative;
	background: #050608;
	aspect-ratio: 16 / 9;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid #334052;
}
video {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.cover video {
	object-fit: cover;
}
#placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #9aacc6;
	pointer-events: none;
}
#placeholder[hidden] {
	display: none;
}
#exit-fullscreen {
	display: none;
	position: absolute;
	right: 16px;
	top: 16px;
	z-index: 3;
	font-size: 30px;
	background: #111d2ee8;
}
#player:fullscreen {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 0;
	aspect-ratio: auto;
}
.expanded #exit-fullscreen,
#player:fullscreen #exit-fullscreen {
	display: block;
}
#player.expanded {
	position: fixed;
	inset: 0;
	z-index: 20;
	width: 100%;
	height: 100dvh;
	border-radius: 0;
	aspect-ratio: auto;
}
.player-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 0 6px;
}
.eyebrow {
	font-size: 12px;
	letter-spacing: 2px;
	color: #a6c1ff;
	margin: 0;
}
h1 {
	font-size: 26px;
	margin: 3px 0;
}
.actions {
	display: flex;
	gap: 8px;
}
.actions button {
	font-size: 26px;
}
#status {
	min-height: 27px;
	color: #c0cee2;
}
.note {
	font-size: 14px;
	color: #93a4bc;
	max-width: 750px;
	border-top: 1px solid #303c4c;
	padding-top: 18px;
}
.note a {
	color: #aac6ff;
}
footer {
	font-size: 13px;
	color: #93a4bc;
	text-align: center;
	padding: 12px 24px 24px;
}
.empty {
	color: #b5c4d8;
}
html:fullscreen {
	overflow: auto;
}
@media (max-width: 760px) {
	header {
		padding: 14px 16px;
		gap: 12px;
	}
	.brand {
		font-size: 24px;
	}
	.badge {
		display: none;
	}
	main {
		display: flex;
		flex-direction: column;
		padding: 16px;
		gap: 18px;
	}
	.view {
		order: -1;
	}
	aside {
		width: 100%;
	}
	.player-bar {
		gap: 8px;
	}
	h1 {
		font-size: 22px;
	}
	.actions {
		gap: 5px;
	}
	#status {
		font-size: 16px;
	}
	.note {
		font-size: 13px;
	}
	nav button {
		font-size: 18px;
	}
	#player {
		border-radius: 10px;
	}
}
@media (prefers-reduced-motion: no-preference) {
	button {
		transition: background 0.15s ease;
	}
}

select {
	width: 100%;
	min-height: 48px;
	padding: 10px;
	border: 1px solid #41536c;
	border-radius: 9px;
	background: #101822;
	color: inherit;
	font: inherit;
	margin: 8px 0 12px;
}
.filter {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #c0cee2;
	font-size: 15px;
}
.filter input {
	width: 22px;
	height: 22px;
	margin: 0;
}
.catalog-count {
	font-size: 14px;
	color: #a7b9d3;
}
#channels {
	max-height: 58vh;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4px;
}
.channel .select {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 3px;
	min-width: 0;
	overflow-wrap: anywhere;
}
.channel small {
	font-size: 12px;
	font-weight: 400;
	color: #b7c7dc;
}
.source-link {
	display: inline-block;
	color: #aac6ff;
	padding: 12px 0;
}
.source-link[hidden] {
	display: none;
}
#more-channels {
	padding: 12px;
	font-size: 14px;
	color: #a7b9d3;
}
