:root {
	--sh-blue: #24c8ff;
	--sh-cyan: #9af2ff;
	--sh-orange: #ff6410;
	--sh-panel: rgba(5, 15, 28, .94);
	--sh-muted: #9eb3c7;
}


/* User-selected synchronized hero and site background. The selector stores the
   chosen image in localStorage and exposes it through both background variables.
   A fixed viewport layer is used instead of a scrolling body background so the
   wallpaper remains completely stationary while every page area scrolls above it. */
html {
	background: #020811;
}

body.shSiteBackgroundActive {
	position: relative;
	isolation: isolate;
	background: transparent !important;
}

body.shSiteBackgroundActive::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(2, 8, 17, .72), rgba(2, 8, 17, .86)),
		var(--sh-site-background);
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	transform: translateZ(0);
	will-change: transform;
}

body.shSiteBackgroundActive #ipsLayout_body,
body.shSiteBackgroundActive #ipsLayout_mainArea {
	background: transparent !important;
}

.shAppHome {
	display: grid;
	gap: 18px;
	width: 100%;
}

.shAppHero {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .25);
	border-radius: 16px;
	background:
		linear-gradient(
			180deg,
			rgba(2, 8, 17, .18),
			rgba(2, 8, 17, .88)
		),
		var(--sh-hero-background)
			center / cover no-repeat;
	box-shadow:
		0 25px 70px rgba(0, 0, 0, .52),
		0 0 30px rgba(36, 200, 255, .10);
}

.shAppTicker {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 3;
	overflow: hidden;
	padding: 12px 0;
	border-bottom: 1px solid rgba(36, 200, 255, .22);
	background: rgba(2, 9, 19, .82);
	white-space: nowrap;
}

.shAppTicker__track {
	display: flex;
	width: max-content;
	animation: shAppTickerMove 28s linear infinite;
	will-change: transform;
}

.shAppTicker__track span {
	flex: none;
	padding-right: 70px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: linear-gradient(
		90deg,
		var(--sh-orange),
		#ffc15a,
		var(--sh-blue),
		#9af2ff,
		var(--sh-blue),
		var(--sh-orange)
	);
	background-size: 260% 100%;
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	text-shadow:
		0 0 10px rgba(36, 200, 255, .35),
		0 0 20px rgba(255, 100, 16, .20);
}

.shAppHero__inner {
	position: relative;
	z-index: 2;
	width: min(980px, 100%);
	min-height: 500px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 62px 30px 28px;
	text-align: center;
}

.shAppHero__logo {
	display: block;
	width: min(860px, 98%);
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	filter:
		drop-shadow(0 0 20px rgba(36, 200, 255, .75))
		drop-shadow(0 0 42px rgba(255, 100, 16, .28));
}

.shAppHero__title {
	margin: 18px auto 0;
	color: #fff;
	font-size: clamp(28px, 5vw, 54px);
	font-weight: 950;
	letter-spacing: .04em;
	line-height: 1;
	text-transform: uppercase;
	text-shadow:
		0 0 18px var(--sh-blue),
		0 0 32px rgba(255, 100, 16, .28);
}

.shAppHero__text {
	max-width: 680px;
	margin: 20px auto 0;
	color: #dcebf5;
	font-size: 16px;
	line-height: 1.65;
}

.shAppHero__actions {
	position: absolute;
	left: 30px;
	right: 30px;
	bottom: 28px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin: 0;
}

.shAppButton {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: 7px;
	color: #fff !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .06em;
	text-decoration: none !important;
	text-transform: uppercase;
	cursor: pointer;
}

.shAppButton--orange {
	border-color: rgba(255, 142, 55, .85);
	background: linear-gradient(135deg, #f14500, #ff7b00);
	box-shadow: 0 0 18px rgba(255, 100, 16, .32);
}

.shAppButton--blue {
	border-color: rgba(36, 200, 255, .68);
	background: rgba(4, 19, 35, .88);
	box-shadow: 0 0 18px rgba(36, 200, 255, .20);
}

.shAppGrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.shAppPanel {
	min-height: 190px;
	padding: 20px;
	border: 1px solid rgba(36, 200, 255, .17);
	border-radius: 12px;
	background: linear-gradient(
		145deg,
		rgba(5, 15, 28, .97),
		rgba(8, 21, 36, .94)
	);
	box-shadow: 0 16px 38px rgba(0, 0, 0, .34);
}

.shAppPanel--blue {
	border-color: rgba(36, 200, 255, .30);
}

.shAppPanel--orange {
	border-color: rgba(255, 100, 16, .28);
	background: linear-gradient(
		145deg,
		rgba(18, 14, 17, .97),
		rgba(42, 19, 10, .92)
	);
}

.shAppPanel__eyebrow {
	color: var(--sh-blue);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.shAppPanel__title {
	margin: 9px 0 12px;
	color: #fff;
	font-size: 19px;
	font-weight: 900;
	text-transform: uppercase;
}

.shAppPanel p {
	color: var(--sh-muted);
	line-height: 1.58;
}

@keyframes shAppTickerMove {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media screen and (max-width: 900px) {
	.shAppGrid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 620px) {
	.shAppHero {
		min-height: 410px;
	}

	.shAppHero__inner {
		min-height: 410px;
		padding: 58px 16px 24px;
	}

	.shAppHero__logo {
		width: min(760px, 100%);
	}

	.shAppHero__actions {
		left: 16px;
		right: 16px;
		bottom: 24px;
		flex-direction: column;
	}

	.shAppButton {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shAppTicker__track {
		animation: none;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.3
   ========================================================= */

.shRadioBar {
	position: sticky;
	top: 0;
	z-index: 90;
	display: grid;
	grid-template-columns:
		minmax(150px, .75fr)
		minmax(260px, 1.45fr)
		minmax(180px, 1fr)
		minmax(85px, .4fr)
		auto;
	gap: 18px;
	align-items: center;
	padding: 14px 18px;
	border: 1px solid rgba(36, 200, 255, .24);
	border-radius: 13px;
	background:
		linear-gradient(
			90deg,
			rgba(3, 10, 22, .98),
			rgba(12, 20, 62, .96) 52%,
			rgba(30, 9, 10, .96)
		);
	box-shadow:
		0 18px 42px rgba(0, 0, 0, .42),
		0 0 25px rgba(36, 200, 255, .10);
	backdrop-filter: blur(14px);
}

.shRadioBar__status,
.shRadioBar__track,
.shRadioBar__listeners {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
}

.shRadioBar__pulse {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--sh-orange);
	box-shadow: 0 0 14px rgba(255, 100, 16, .78);
}

.is-online .shRadioBar__pulse {
	background: #27f0bf;
	box-shadow: 0 0 16px rgba(39, 240, 191, .88);
	animation: shRadioPulse 1.45s ease-in-out infinite;
}

.shRadioBar__label {
	display: block;
	color: #6de6ff;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.shRadioBar strong {
	display: block;
	overflow: hidden;
	color: #fff;
	font-size: 13px;
	font-weight: 900;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shRadioBar__icon {
	width: 44px;
	height: 44px;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .46);
	border-radius: 10px;
	color: #dffaff;
	font-size: 19px;
	background: linear-gradient(
		145deg,
		rgba(36, 200, 255, .25),
		rgba(7, 48, 126, .58)
	);
	box-shadow: 0 0 16px rgba(36, 200, 255, .16);
}

.shRadioBar__trackText {
	min-width: 0;
}

.shRadioBar__trackText > span:last-child {
	display: block;
	overflow: hidden;
	color: #a9bfd0;
	font-size: 11px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shRadioBar__visualizer {
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
	overflow: hidden;
}

.shRadioBar__visualizer span {
	width: 3px;
	height: 5px;
	display: block;
	border-radius: 999px;
	background: linear-gradient(to top, var(--sh-orange), var(--sh-blue));
	box-shadow: 0 0 7px rgba(36, 200, 255, .42);
	transition: height .1s linear;
}

.shRadioBar__listeners {
	justify-content: center;
	text-align: center;
}

.shRadioBar__button {
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 20px;
	border: 1px solid rgba(255, 144, 52, .82);
	border-radius: 8px;
	color: #fff;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
	background: linear-gradient(135deg, #f14500, #ff8b00);
	box-shadow: 0 0 18px rgba(255, 100, 16, .3);
	cursor: pointer;
}

.shRadioBar__button.is-playing,
.shAppButton.is-playing {
	border-color: rgba(119, 234, 255, .9);
	background: linear-gradient(
		120deg,
		#047eb6,
		var(--sh-blue),
		#81ebff
	);
	box-shadow: 0 0 22px rgba(36, 200, 255, .42);
}

.shAppRadioGrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.shNowPlaying {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 15px;
	align-items: center;
	margin-top: 18px;
	padding: 14px;
	border: 1px solid rgba(36, 200, 255, .15);
	border-radius: 10px;
	background: rgba(3, 12, 24, .7);
}

.shNowPlaying__art {
	width: 76px;
	height: 76px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .35);
	border-radius: 12px;
	color: #8beeff;
	font-size: 29px;
	background: linear-gradient(
		145deg,
		rgba(36, 200, 255, .18),
		rgba(255, 100, 16, .13)
	);
	box-shadow:
		0 0 17px rgba(36, 200, 255, .18),
		0 0 25px rgba(255, 100, 16, .09);
}

.shNowPlaying__copy {
	min-width: 0;
}

.shNowPlaying__copy strong,
.shNowPlaying__copy span,
.shNowPlaying__copy small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shNowPlaying__copy strong {
	color: #fff;
	font-size: 15px;
}

.shNowPlaying__copy span {
	margin-top: 4px;
	color: #9eb3c7;
	font-size: 12px;
}

.shNowPlaying__copy small {
	margin-top: 9px;
	color: #6de6ff;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
}

.shRecentTracks {
	max-height: 270px;
	overflow-y: auto;
	display: grid;
	gap: 8px;
	margin-top: 16px;
	padding-right: 5px;
	scrollbar-width: thin;
	scrollbar-color:
		rgba(36, 200, 255, .55)
		rgba(3, 10, 20, .45);
}

.shRecentTrack {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	padding: 9px 10px;
	border: 1px solid rgba(36, 200, 255, .1);
	border-radius: 7px;
	background: rgba(4, 13, 25, .68);
}

.shRecentTrack time {
	color: #ff934c;
	font-size: 10px;
	font-weight: 900;
}

.shRecentTrack strong,
.shRecentTrack small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shRecentTrack strong {
	color: #fff;
	font-size: 11px;
}

.shRecentTrack small {
	margin-top: 2px;
	color: #8198ab;
	font-size: 9px;
}

.shRecentTracks__empty {
	padding: 20px 12px;
	color: #8198ab;
	text-align: center;
}

.shFeatureList {
	display: grid;
	gap: 9px;
	margin: 15px 0 0;
	padding: 0;
	list-style: none;
}

.shFeatureList li {
	position: relative;
	padding-left: 19px;
	color: #a9bfd0;
	font-size: 12px;
}

.shFeatureList li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--sh-blue);
	font-weight: 900;
}

@keyframes shRadioPulse {
	0%,
	100% {
		opacity: .55;
		transform: scale(.82);
	}

	50% {
		opacity: 1;
		transform: scale(1.14);
	}
}

@media screen and (max-width: 1050px) {
	.shRadioBar {
		grid-template-columns: 1fr 1.6fr auto;
	}

	.shRadioBar__visualizer,
	.shRadioBar__listeners {
		display: none;
	}

	.shAppRadioGrid {
		grid-template-columns: 1fr 1fr;
	}

	.shAppPanel--orange {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 700px) {
	.shRadioBar {
		position: relative;
		grid-template-columns: 1fr auto;
		gap: 12px;
	}

	.shRadioBar__track {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.shRadioBar__status {
		grid-column: 1;
		grid-row: 2;
	}

	.shRadioBar__button {
		grid-column: 2;
		grid-row: 2;
		padding: 0 13px;
	}

	.shAppRadioGrid {
		grid-template-columns: 1fr;
	}

	.shAppPanel--orange {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.is-online .shRadioBar__pulse {
		animation: none;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.4 Native Chat
   ========================================================= */

.shNativeChat {
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .24);
	border-radius: 13px;
	background: linear-gradient(
		145deg,
		rgba(4, 13, 25, .97),
		rgba(9, 23, 39, .94) 62%,
		rgba(31, 15, 9, .92)
	);
	box-shadow:
		0 18px 46px rgba(0, 0, 0, .48),
		0 0 24px rgba(36, 200, 255, .08);
}

.shNativeChat__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 18px;
	border-bottom: 1px solid rgba(36, 200, 255, .16);
	background: rgba(3, 10, 20, .72);
}

.shNativeChat__title {
	margin: 5px 0 0;
	color: #fff;
	font-size: 20px;
	font-weight: 900;
	text-transform: uppercase;
}

.shNativeChat__status {
	color: #7ddfff;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.shNativeChat__status.is-error {
	color: #ff9a5a;
}

.shNativeChat__history {
	display: flex;
	justify-content: center;
	min-height: 0;
	padding: 8px 16px 0;
}

.shNativeChat__history:has(.shNativeChat__historyButton[hidden]) {
	display: none;
}

.shNativeChat__historyButton {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 13px;
	border: 1px solid rgba(36, 200, 255, .28);
	border-radius: 999px;
	background: rgba(4, 17, 31, .82);
	color: #9be8ff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.shNativeChat__historyButton:hover {
	border-color: rgba(255, 105, 24, .65);
	background: rgba(11, 29, 47, .96);
	transform: translateY(-1px);
}

.shNativeChat__historyButton:disabled {
	opacity: .58;
	cursor: wait;
	transform: none;
}

.shNativeChat__messages {
	height: 360px;
	overflow-y: auto;
	display: grid;
	align-content: start;
	gap: 10px;
	padding: 16px;
	scrollbar-width: thin;
	scrollbar-color:
		rgba(36, 200, 255, .55)
		rgba(3, 10, 20, .45);
}

.shNativeChat__messages::-webkit-scrollbar {
	width: 6px;
}

.shNativeChat__messages::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: linear-gradient(
		to bottom,
		var(--sh-blue),
		var(--sh-orange)
	);
}

.shNativeChat__empty {
	padding: 32px 18px;
	color: #829aae;
	text-align: center;
}

.shNativeMessage {
	position: relative;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	gap: 11px;
	align-items: start;
	padding: 10px;
	border: 1px solid rgba(36, 200, 255, .10);
	border-radius: 8px;
	background: rgba(5, 15, 28, .68);
}

.shNativeMessage:hover {
	border-color: rgba(36, 200, 255, .24);
	background: rgba(7, 20, 36, .82);
}

.shNativeMessage__avatar {
	width: 42px;
	height: 42px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .36);
	border-radius: 50%;
	color: #dffaff;
	font-size: 11px;
	font-weight: 900;
	background: linear-gradient(
		145deg,
		rgba(36, 200, 255, .25),
		rgba(255, 100, 16, .18)
	);
	box-shadow:
		0 0 12px rgba(36, 200, 255, .18);
}

.shNativeMessage__body {
	min-width: 0;
}

.shNativeMessage__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}

.shNativeMessage__name {
	overflow: hidden;
	color: #fff;
	font-size: 12px;
	font-weight: 900;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shNativeMessage__time {
	flex: 0 0 auto;
	color: #617b90;
	font-size: 9px;
}

.shNativeMessage__text {
	margin: 4px 0 0;
	color: #c4d7e5;
	font-size: 12px;
	line-height: 1.48;
	overflow-wrap: anywhere;
}

.shNativeMessage__actions {
	display: flex;
	gap: 6px;
	margin-left: auto;
	align-self: flex-start;
	opacity: .45;
	transition: opacity .18s ease;
}

.shNativeMessage:hover .shNativeMessage__actions,
.shNativeMessage:focus-within .shNativeMessage__actions {
	opacity: 1;
}

.shNativeMessage__action {
	border: 1px solid rgba(90, 190, 255, .22);
	border-radius: 8px;
	background: rgba(5, 17, 33, .72);
	color: rgba(225, 244, 255, .82);
	font-size: 11px;
	line-height: 1;
	padding: 6px 8px;
	cursor: pointer;
}

.shNativeMessage__action i { margin-right: 4px; }
.shNativeMessage__action:hover { color: #fff; border-color: rgba(93, 207, 255, .7); }
.shNativeMessage__action--delete:hover { color: #ff9f8c; border-color: rgba(255, 103, 73, .72); }

.shNativeMessage__edited {
	color: rgba(196, 218, 232, .52);
	font-size: 10px;
	font-style: italic;
	font-weight: 500;
	margin-left: 2px;
}

.shNativeChat__composer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	padding: 14px 16px;
	border-top: 1px solid rgba(36, 200, 255, .16);
	background: rgba(3, 10, 20, .78);
}

.shNativeChat__input {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid rgba(36, 200, 255, .26);
	border-radius: 7px;
	color: #fff;
	background: rgba(4, 14, 27, .88);
	outline: none;
}

.shNativeChat__input:focus {
	border-color: rgba(36, 200, 255, .72);
	box-shadow:
		0 0 16px rgba(36, 200, 255, .16);
}

.shNativeChat__send {
	min-width: 112px;
	border: 1px solid rgba(255, 100, 16, .70);
	border-radius: 7px;
	color: #fff;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
	background: linear-gradient(
		135deg,
		#db4b00,
		#ff7a19
	);
	box-shadow:
		0 0 14px rgba(255, 100, 16, .18);
	cursor: pointer;
}

.shNativeChat__send:disabled {
	opacity: .55;
	cursor: wait;
}

.shNativeChat__signin {
	padding: 16px;
	border-top: 1px solid rgba(36, 200, 255, .16);
	color: #93aabd;
	text-align: center;
	background: rgba(3, 10, 20, .78);
}

@media screen and (max-width: 600px) {
	.shNativeChat__messages {
		height: 320px;
	}

	.shNativeChat__composer {
		grid-template-columns: 1fr;
	}

	.shNativeChat__send {
		min-height: 44px;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.7.0 Professional Player
   ========================================================= */

.shProPlayer {
	position: sticky;
	top: 0;
	z-index: 95;
	display: grid;
	grid-template-columns:
		minmax(190px, .85fr)
		minmax(260px, 1.3fr)
		minmax(300px, 1.2fr)
		minmax(210px, .8fr);
	gap: 18px;
	align-items: center;
	padding: 16px 18px;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--sh-blue) 42%, transparent);
	border-radius: 15px;
	background:
		radial-gradient(
			circle at 20% 20%,
			color-mix(in srgb, var(--sh-blue) 18%, transparent),
			transparent 34%
		),
		radial-gradient(
			circle at 82% 30%,
			color-mix(in srgb, var(--sh-orange) 17%, transparent),
			transparent 36%
		),
		linear-gradient(
			120deg,
			rgba(3, 9, 20, .98),
			rgba(9, 20, 48, .97) 54%,
			rgba(29, 10, 13, .97)
		);
	box-shadow:
		0 22px 52px rgba(0, 0, 0, .48),
		0 0 30px color-mix(in srgb, var(--sh-blue) 13%, transparent);
	backdrop-filter: blur(16px);
}

.shProPlayer::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(
			90deg,
			transparent,
			rgba(255, 255, 255, .035),
			transparent
		);
	transform: translateX(-100%);
	animation: shPlayerSweep 8s linear infinite;
}

.shProPlayer__brand,
.shProPlayer__controls,
.shProPlayer__stats {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.shProPlayer__disc {
	width: 54px;
	height: 54px;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid color-mix(in srgb, var(--sh-blue) 54%, transparent);
	border-radius: 50%;
	color: #eaffff;
	font-size: 20px;
	background:
		radial-gradient(circle, #08101d 0 20%, transparent 21%),
		repeating-radial-gradient(
			circle,
			rgba(255, 255, 255, .10) 0 1px,
			rgba(5, 12, 24, .95) 2px 6px
		);
	box-shadow:
		0 0 19px color-mix(in srgb, var(--sh-blue) 25%, transparent),
		inset 0 0 13px rgba(255, 255, 255, .08);
	animation: shDiscSpin 8s linear infinite paused;
}

.is-online .shProPlayer__disc {
	animation-play-state: running;
}

.shProPlayer__brandCopy {
	min-width: 0;
}

.shProPlayer__brandCopy strong,
.shProPlayer__now strong {
	display: block;
	overflow: hidden;
	color: #fff;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shProPlayer__liveBadge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-left: auto;
	padding: 6px 9px;
	border: 1px solid rgba(255, 100, 16, .36);
	border-radius: 999px;
	color: #ffbf95;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .11em;
	text-transform: uppercase;
	background: rgba(255, 100, 16, .08);
}

.shProPlayer__liveBadge.is-live {
	border-color: rgba(39, 240, 191, .42);
	color: #89ffe0;
	background: rgba(39, 240, 191, .08);
}

.shProPlayer__now {
	position: relative;
	z-index: 2;
	min-width: 0;
}

.shProPlayer__now > span:not(.shRadioBar__label) {
	display: block;
	overflow: hidden;
	color: #9fb6c8;
	font-size: 11px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shProPlayer__now .shRadioBar__visualizer {
	margin-top: 8px;
	justify-content: flex-start;
}

.shProPlayer__controls {
	flex-wrap: nowrap;
}

.shProPlayer__play,
.shProPlayer__mute {
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	color: #fff;
	cursor: pointer;
}

.shProPlayer__play {
	min-width: 132px;
	gap: 8px;
	padding: 0 17px;
	border: 1px solid color-mix(in srgb, var(--sh-orange) 80%, white);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .06em;
	text-transform: uppercase;
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--sh-orange) 82%, #aa2200),
		color-mix(in srgb, var(--sh-orange) 82%, #ffb02e)
	);
	box-shadow: 0 0 20px color-mix(in srgb, var(--sh-orange) 33%, transparent);
}

.shProPlayer__play.is-playing {
	border-color: color-mix(in srgb, var(--sh-blue) 76%, white);
	background: linear-gradient(
		135deg,
		#057fb4,
		var(--sh-blue),
		#8ceeff
	);
	box-shadow: 0 0 22px color-mix(in srgb, var(--sh-blue) 38%, transparent);
}

.shProPlayer__mute {
	width: 46px;
	flex: 0 0 auto;
	border: 1px solid rgba(126, 220, 255, .27);
	background: rgba(5, 19, 37, .82);
}

.shProPlayer__mute.is-muted {
	border-color: rgba(255, 100, 16, .55);
	color: #ff9c62;
}

.shProPlayer__volume {
	flex: 1 1 120px;
	min-width: 90px;
}

.shProPlayer__volume input {
	width: 100%;
	accent-color: var(--sh-blue);
	cursor: pointer;
}

.shProPlayer__volumeValue {
	width: 38px;
	flex: 0 0 auto;
	color: #9feeff;
	font-size: 10px;
	font-weight: 800;
	text-align: right;
}

.shProPlayer__stats {
	justify-content: flex-end;
}

.shProPlayer__stats > div {
	min-width: 58px;
	padding-left: 12px;
	border-left: 1px solid rgba(36, 200, 255, .14);
}

.shProPlayer__stats strong {
	display: block;
	overflow: hidden;
	color: #fff;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@keyframes shDiscSpin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes shPlayerSweep {
	to {
		transform: translateX(100%);
	}
}

@media screen and (max-width: 1180px) {
	.shProPlayer {
		grid-template-columns: 1fr 1.4fr;
	}

	.shProPlayer__controls,
	.shProPlayer__stats {
		border-top: 1px solid rgba(36, 200, 255, .11);
		padding-top: 12px;
	}

	.shProPlayer__stats {
		justify-content: flex-start;
	}
}

@media screen and (max-width: 720px) {
	.shProPlayer {
		position: relative;
		grid-template-columns: 1fr;
		gap: 13px;
	}

	.shProPlayer__brand,
	.shProPlayer__now,
	.shProPlayer__controls,
	.shProPlayer__stats {
		width: 100%;
	}

	.shProPlayer__controls {
		flex-wrap: wrap;
	}

	.shProPlayer__play {
		flex: 1 1 150px;
	}

	.shProPlayer__stats {
		justify-content: space-between;
	}

	.shProPlayer__connection {
		position: static;
		grid-column: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shProPlayer::before,
	.shProPlayer__disc {
		animation: none;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.8 Homepage Builder
   ========================================================= */

.shLatestTopics {
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .22);
	border-radius: 13px;
	background: linear-gradient(
		145deg,
		rgba(4, 13, 25, .97),
		rgba(9, 23, 39, .94) 64%,
		rgba(25, 13, 10, .92)
	);
	box-shadow:
		0 18px 46px rgba(0, 0, 0, .40),
		0 0 24px rgba(36, 200, 255, .07);
}

.shLatestTopics__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 17px 19px;
	border-bottom: 1px solid rgba(36, 200, 255, .14);
	background: rgba(3, 10, 20, .72);
}

.shLatestTopics__title {
	margin: 5px 0 0;
	color: #fff;
	font-size: 20px;
	font-weight: 900;
	text-transform: uppercase;
}

.shLatestTopics__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #8ceeff !important;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .06em;
	text-decoration: none !important;
	text-transform: uppercase;
}

.shLatestTopics__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	padding: 16px;
}

.shLatestTopic {
	min-width: 0;
	display: grid;
	grid-template-columns: 39px minmax(0, 1fr) auto;
	gap: 11px;
	align-items: center;
	padding: 11px;
	border: 1px solid rgba(36, 200, 255, .10);
	border-radius: 8px;
	color: inherit !important;
	text-decoration: none !important;
	background: rgba(5, 15, 28, .68);
	transition:
		border-color .18s ease,
		transform .18s ease,
		background .18s ease;
}

.shLatestTopic:hover {
	border-color: rgba(36, 200, 255, .32);
	background: rgba(8, 23, 40, .88);
	transform: translateY(-2px);
}

.shLatestTopic__icon {
	width: 39px;
	height: 39px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .30);
	border-radius: 9px;
	color: #9defff;
	background: linear-gradient(
		145deg,
		rgba(36, 200, 255, .19),
		rgba(255, 100, 16, .10)
	);
}

.shLatestTopic__copy {
	min-width: 0;
}

.shLatestTopic__copy strong,
.shLatestTopic__copy small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shLatestTopic__copy strong {
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}

.shLatestTopic__copy small {
	margin-top: 3px;
	color: #8198ab;
	font-size: 9px;
}

.shLatestTopic time {
	color: #ff9b5e;
	font-size: 9px;
	font-weight: 800;
	white-space: nowrap;
}

.shLatestTopics__empty {
	grid-column: 1 / -1;
	padding: 28px 16px;
	color: #8198ab;
	text-align: center;
}

@media screen and (max-width: 760px) {
	.shLatestTopics__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.shLatestTopics__grid {
		grid-template-columns: 1fr;
	}

	.shLatestTopic {
		grid-template-columns: 39px minmax(0, 1fr);
	}

	.shLatestTopic time {
		grid-column: 2;
	}
}


/* Public booking calendar and full schedule */
.shSchedulePage{display:grid;gap:18px}
.shSchedulePage__hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid rgba(36,200,255,.22);border-radius:14px;background:linear-gradient(135deg,rgba(4,13,25,.98),rgba(10,24,46,.96) 62%,rgba(34,15,8,.94));box-shadow:0 18px 46px rgba(0,0,0,.42)}
.shSchedulePage__hero h1{margin:6px 0 6px;color:#fff;font-size:30px;text-transform:uppercase}.shSchedulePage__hero p{margin:0;color:#90a7b8}
.shSchedulePage__back{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid rgba(36,200,255,.26);border-radius:8px;color:#9defff!important;text-decoration:none!important;background:rgba(36,200,255,.06)}
.shScheduleWeek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:start}
.shScheduleDay{overflow:hidden;border:1px solid rgba(36,200,255,.20);border-radius:10px;background:linear-gradient(180deg,rgba(65,69,87,.96),rgba(34,39,51,.98))}
.shScheduleDay__header{display:grid;gap:3px;padding:8px 9px;border-bottom:1px solid rgba(36,200,255,.18);color:#5acaf5;text-align:left}.shScheduleDay__header span{font-size:18px;font-weight:900}.shScheduleDay__header strong{color:#9de8ff;font-size:10px;text-transform:uppercase}
.shScheduleDay__shows{display:grid;gap:8px;padding:8px}
.shScheduleShow{display:grid;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:rgba(255,255,255,.94);color:#18202b}
.shScheduleShow__avatar{width:100%;aspect-ratio:16/9;overflow:hidden;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#168ab5;background:linear-gradient(145deg,rgba(36,200,255,.20),rgba(255,100,16,.16))}
.shScheduleShow__avatar img{width:100%;height:100%;object-fit:cover}.shScheduleShow__copy strong{display:block;color:#1787b4;font-size:13px;text-align:center}.shScheduleShow__time{display:flex;justify-content:center;gap:5px;color:#1787b4;font-size:11px;font-weight:900}
.shScheduleShow__copy h2{margin:5px 0;color:#1787b4;font-size:14px;line-height:1.1;text-align:center}.shScheduleShow__copy span{display:block;color:#1787b4;font-size:10px;font-weight:800;text-align:center;text-transform:uppercase}
.shScheduleDay__empty{padding:20px 8px;color:#c6d1dc;font-size:11px;text-align:center}
@media(max-width:1200px){.shScheduleWeek{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:800px){.shScheduleWeek{grid-template-columns:repeat(2,minmax(0,1fr))}.shSchedulePage__hero{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.shScheduleWeek{grid-template-columns:1fr}}

/* =========================================================
   Sonic Radio Suite — Alpha 0.9.3 TheAudioDB Artwork
   ========================================================= */

.shProPlayer {
	grid-template-columns:
		minmax(180px, .8fr)
		minmax(225px, 1.1fr)
		86px
		minmax(285px, 1.2fr)
		minmax(205px, .8fr);
}

.shProPlayer__art {
	position: relative;
	z-index: 2;
	width: 82px;
	height: 82px;
	overflow: hidden;
	border: 1px solid color-mix(
		in srgb,
		var(--sh-blue) 42%,
		transparent
	);
	border-radius: 10px;
	background:
		linear-gradient(
			145deg,
			rgba(36, 200, 255, .14),
			rgba(255, 100, 16, .12)
		);
	box-shadow:
		0 0 19px color-mix(
			in srgb,
			var(--sh-blue) 20%,
			transparent
		);
}

.shProPlayer__art img,
.shNowPlaying__art img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	opacity: 1;
	transform: scale(1);
	transition:
		opacity .28s ease,
		transform .36s ease;
}

.shProPlayer__art img.is-changing,
.shNowPlaying__art img.is-changing {
	opacity: .22;
	transform: scale(1.07);
}

.shNowPlaying__art {
	overflow: hidden;
	padding: 0;
}

.shNowPlaying__copy em {
	display: block;
	overflow: hidden;
	margin-top: 3px;
	color: #718b9e;
	font-size: 9px;
	font-style: normal;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media screen and (max-width: 1280px) {
	.shProPlayer {
		grid-template-columns:
			minmax(180px, .8fr)
			minmax(240px, 1.2fr)
			82px
			minmax(285px, 1.2fr);
	}

	.shProPlayer__stats {
		grid-column: 1 / -1;
		justify-content: flex-start;
		padding-top: 10px;
		border-top: 1px solid rgba(36, 200, 255, .11);
	}
}

@media screen and (max-width: 760px) {
	.shProPlayer {
		grid-template-columns: 72px minmax(0, 1fr);
	}

	.shProPlayer__brand,
	.shProPlayer__controls,
	.shProPlayer__stats,
	.shProPlayer__connection {
		grid-column: 1 / -1;
	}

	.shProPlayer__art {
		grid-column: 1;
		grid-row: 2;
		width: 68px;
		height: 68px;
	}

	.shProPlayer__now {
		grid-column: 2;
		grid-row: 2;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.9.4 Premium UI + Avatar Pack
   ========================================================= */

.shAppPanel--nowPlaying {
	grid-column: span 2;
	border-color: color-mix(
		in srgb,
		var(--sh-blue) 42%,
		transparent
	);
	background:
		radial-gradient(
			circle at 16% 18%,
			color-mix(in srgb, var(--sh-blue) 15%, transparent),
			transparent 34%
		),
		radial-gradient(
			circle at 88% 76%,
			color-mix(in srgb, var(--sh-orange) 13%, transparent),
			transparent 32%
		),
		linear-gradient(
			135deg,
			rgba(2, 10, 22, .98),
			rgba(6, 21, 39, .96) 58%,
			rgba(26, 10, 11, .94)
		);
	box-shadow:
		0 20px 48px rgba(0, 0, 0, .46),
		0 0 27px color-mix(
			in srgb,
			var(--sh-blue) 13%,
			transparent
		);
}

.shNowPlaying--premium {
	display: grid;
	grid-template-columns: minmax(145px, 190px) minmax(0, 1fr);
	gap: 22px;
	align-items: stretch;
	padding: 14px 0 0;
}

.shNowPlaying--premium .shNowPlaying__art {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	border: 1px solid color-mix(
		in srgb,
		var(--sh-blue) 55%,
		var(--sh-orange)
	);
	border-radius: 13px;
	box-shadow:
		-4px 0 20px color-mix(
			in srgb,
			var(--sh-blue) 24%,
			transparent
		),
		4px 0 20px color-mix(
			in srgb,
			var(--sh-orange) 18%,
			transparent
		);
}

.shNowPlaying--premium .shNowPlaying__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.shNowPlaying__live {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	align-self: flex-start;
	margin-bottom: 8px;
	color: #7ff2ff;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.shNowPlaying__live span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--sh-orange);
	box-shadow:
		0 0 12px color-mix(
			in srgb,
			var(--sh-orange) 78%,
			transparent
		);
	animation: shRadioPulse 1.45s ease-in-out infinite;
}

.shNowPlaying--premium .shNowPlaying__copy > strong {
	font-size: clamp(19px, 2.2vw, 30px);
	line-height: 1.05;
}

.shNowPlaying--premium .shNowPlaying__copy > span {
	margin-top: 7px;
	color: #72dcff;
	font-size: 13px;
}

.shNowPlaying__wave {
	height: 42px;
	display: flex;
	align-items: center;
	gap: 3px;
	margin-top: 17px;
}

.shNowPlaying__wave span {
	width: 3px;
	height: 20%;
	border-radius: 999px;
	background: linear-gradient(
		to top,
		var(--sh-orange),
		var(--sh-blue)
	);
	box-shadow: 0 0 7px rgba(36, 200, 255, .26);
	animation: shPremiumWave 1.1s ease-in-out infinite alternate;
}

.shNowPlaying__wave span:nth-child(3n) { animation-delay: -.18s; }
.shNowPlaying__wave span:nth-child(4n) { animation-delay: -.42s; }
.shNowPlaying__wave span:nth-child(5n) { animation-delay: -.66s; }

.shNowPlaying__metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid rgba(36, 200, 255, .12);
}

.shNowPlaying__metrics > div {
	min-width: 0;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 8px;
	padding: 0 13px;
	border-left: 1px solid rgba(36, 200, 255, .12);
}

.shNowPlaying__metrics > div:first-child {
	padding-left: 0;
	border-left: 0;
}

.shNowPlaying__metrics i {
	grid-row: 1 / span 2;
	align-self: center;
	color: var(--sh-blue);
	font-size: 17px;
}

.shNowPlaying__metrics strong {
	overflow: hidden;
	color: #fff;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shNowPlaying__metrics span {
	color: #70dff9;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.shOnAirDj__avatar,
.shDjCard__avatar,
.shScheduleShow__avatar {
	background:
		linear-gradient(
			145deg,
			rgba(36, 200, 255, .17),
			rgba(255, 100, 16, .11)
		);
	box-shadow:
		0 0 16px color-mix(
			in srgb,
			var(--sh-blue) 17%,
			transparent
		);
}

@keyframes shPremiumWave {
	from { height: 18%; opacity: .70; }
	to { height: 94%; opacity: 1; }
}

@media screen and (max-width: 980px) {
	.shAppPanel--nowPlaying {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 620px) {
	.shNowPlaying--premium {
		grid-template-columns: 105px minmax(0, 1fr);
		gap: 14px;
	}

	.shNowPlaying__metrics {
		grid-column: 1 / -1;
	}

	.shNowPlaying__metrics > div {
		padding: 0 7px;
	}
}

@media screen and (max-width: 430px) {
	.shNowPlaying--premium {
		grid-template-columns: 1fr;
	}

	.shNowPlaying--premium .shNowPlaying__art {
		max-width: 190px;
	}

	.shNowPlaying__metrics {
		grid-template-columns: 1fr;
		gap: 9px;
	}

	.shNowPlaying__metrics > div {
		padding: 7px 0;
		border-top: 1px solid rgba(36, 200, 255, .10);
		border-left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shNowPlaying__wave span,
	.shNowPlaying__live span {
		animation: none;
	}
}

/* Alpha 0.9.5 Premium Player */
.shProPlayer{grid-template-columns:minmax(210px,.95fr) minmax(270px,1.35fr) 90px minmax(300px,1.15fr) minmax(240px,.95fr);border-color:color-mix(in srgb,var(--sh-blue) 54%,var(--sh-orange));background:radial-gradient(circle at 12% 18%,rgba(0,166,255,.16),transparent 31%),radial-gradient(circle at 88% 30%,rgba(255,103,0,.15),transparent 34%),linear-gradient(120deg,rgba(0,8,20,.99),rgba(5,15,31,.98) 54%,rgba(25,8,9,.97));box-shadow:-8px 0 26px rgba(0,174,255,.15),8px 0 26px rgba(255,101,0,.14),0 24px 58px rgba(0,0,0,.52)}
.shProPlayer__disc{width:70px;height:70px;padding:0;border:0;background:transparent;box-shadow:0 0 26px color-mix(in srgb,var(--sh-blue) 32%,transparent),0 0 22px color-mix(in srgb,var(--sh-orange) 22%,transparent)}
.shProPlayer__disc img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 0 10px rgba(36,200,255,.35)) drop-shadow(0 0 8px rgba(255,100,16,.24))}
.is-online .shProPlayer__disc{animation:shDiscSpin 11s linear infinite}[data-connection-state="buffering"] .shProPlayer__disc{animation:shDiscSpin 18s linear infinite;opacity:.82}[data-connection-state="offline"] .shProPlayer__disc{animation:none;filter:grayscale(.5);opacity:.56}
.shProPlayer__play{min-width:145px;height:50px;border-radius:10px;font-size:11px}.shProPlayer__art{width:88px;height:88px;border-color:color-mix(in srgb,var(--sh-blue) 48%,var(--sh-orange))}
.shPlayerStatusBar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid color-mix(in srgb,var(--sh-blue) 38%,var(--sh-orange));border-radius:13px;background:linear-gradient(120deg,rgba(3,11,24,.98),rgba(6,17,33,.96) 56%,rgba(29,10,9,.95));box-shadow:0 18px 42px rgba(0,0,0,.40)}
.shPlayerStatusBar__item,.shPlayerStatusBar__link,.shPlayerStatusBar__brand{min-width:0;display:flex;align-items:center;gap:12px;padding:15px 18px;border-left:1px solid rgba(36,200,255,.10)}.shPlayerStatusBar>:first-child{border-left:0}.shPlayerStatusBar i{color:var(--sh-blue);font-size:24px}
.shPlayerStatusBar span,.shPlayerStatusBar strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shPlayerStatusBar span{color:#8ea4b6;font-size:9px;font-weight:800;text-transform:uppercase}.shPlayerStatusBar strong{margin-top:2px;color:#fff;font-size:12px}
.shPlayerStatusBar__brand{justify-content:center;flex-direction:column;gap:2px;text-align:center}.shPlayerStatusBar__brand strong{font-size:15px;text-transform:uppercase}.shPlayerStatusBar__brand span{color:#7ccfe8}
.shPlayerStatusBar__link{color:inherit!important;text-decoration:none!important}.shPlayerStatusBar__link i{color:var(--sh-orange)}.shPlayerStatusBar [data-role="statusMirror"].is-live{color:#36f0bb}.shPlayerStatusBar [data-role="statusMirror"].is-buffering{color:#ffad60}.shPlayerStatusBar [data-role="statusMirror"].is-offline{color:#ff6f61}
@media(max-width:1280px){.shProPlayer{grid-template-columns:minmax(200px,.9fr) minmax(250px,1.2fr) 85px minmax(290px,1.1fr)}.shPlayerStatusBar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shPlayerStatusBar{grid-template-columns:1fr}.shPlayerStatusBar__item,.shPlayerStatusBar__link,.shPlayerStatusBar__brand{border-top:1px solid rgba(36,200,255,.10);border-left:0}.shPlayerStatusBar>:first-child{border-top:0}}

/* =========================================================
   Sonic Radio Suite — Alpha 0.9.6 Dedicated Radio + Chat
   ========================================================= */

.shRadioChatOnly {
	gap: 12px;
	padding: 10px;
	border: 1px solid rgba(36, 200, 255, .42);
	border-radius: 14px;
	background:
		radial-gradient(circle at 10% 8%, rgba(0, 154, 255, .10), transparent 30%),
		radial-gradient(circle at 92% 12%, rgba(255, 100, 16, .09), transparent 28%),
		linear-gradient(145deg, #020811, #040b14 54%, #080608);
	box-shadow:
		0 30px 70px rgba(0, 0, 0, .52),
		0 0 35px rgba(36, 200, 255, .08);
}

.shRadioChatOnly__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	order: 0;
	padding: 8px 16px 12px;
	border-bottom: 1px solid rgba(36, 200, 255, .18);
}

.shRadioChatOnly__brand,
.shRadioChatOnly__broadcast,
.shRadioChatOnly__footerBrand {
	display: flex;
	align-items: center;
	gap: 12px;
}

.shRadioChatOnly__brand img {
	width: 58px;
	height: 58px;
	object-fit: contain;
	filter:
		drop-shadow(0 0 11px rgba(36, 200, 255, .36))
		drop-shadow(0 0 8px rgba(255, 100, 16, .24));
}

.shRadioChatOnly__brand strong {
	display: block;
	color: #fff;
	font-size: clamp(19px, 3vw, 31px);
	font-weight: 950;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.shRadioChatOnly__brand strong::first-letter {
	color: var(--sh-blue);
}

.shRadioChatOnly__brand span,
.shRadioChatOnly__broadcast > span:last-child {
	color: #95a9ba;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.shRadioChatOnly__onAir {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #37efb4;
	font-size: 11px;
	font-weight: 950;
	text-transform: uppercase;
}

.shRadioChatOnly__onAir i {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #30eeb0;
	box-shadow: 0 0 12px rgba(48, 238, 176, .85);
	animation: shRadioPulse 1.4s ease-in-out infinite;
}

.shRadioChatOnly .shProPlayer {
	position: relative;
	top: auto;
	grid-template-columns:
		minmax(280px, .95fr)
		minmax(310px, 1.25fr)
		minmax(175px, .55fr);
	grid-template-areas:
		"brand now art"
		"brand controls controls"
		"stats stats stats";
	gap: 18px 24px;
	padding: 20px;
	border-radius: 12px;
}

.shRadioChatOnly .shProPlayer__brand {
	grid-area: brand;
	align-self: stretch;
	justify-content: center;
	flex-direction: column;
}

.shRadioChatOnly .shProPlayer__disc {
	width: min(100%, 390px);
	height: auto;
	aspect-ratio: 1;
}

.shRadioChatOnly .shProPlayer__brandCopy {
	text-align: center;
}

.shRadioChatOnly .shProPlayer__liveBadge {
	margin: 0;
}

.shRadioChatOnly .shProPlayer__now {
	grid-area: now;
	align-self: end;
}

.shRadioChatOnly .shProPlayer__now > strong {
	font-size: clamp(25px, 4vw, 42px);
	line-height: 1.05;
}

.shRadioChatOnly .shProPlayer__now > span:not(.shRadioBar__label) {
	margin-top: 8px;
	color: var(--sh-orange);
	font-size: 17px;
}

.shRadioChatOnly .shRadioBar__visualizer {
	height: 84px;
	margin-top: 24px;
}

.shRadioChatOnly .shRadioBar__visualizer span {
	width: 5px;
}

.shRadioChatOnly .shProPlayer__art {
	grid-area: art;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	align-self: center;
	border-radius: 11px;
}

.shRadioChatOnly .shProPlayer__controls {
	grid-area: controls;
	justify-content: center;
	padding-top: 15px;
	border-top: 1px solid rgba(36, 200, 255, .11);
}

.shRadioChatOnly .shProPlayer__play {
	width: 74px;
	min-width: 74px;
	height: 74px;
	border-radius: 50%;
	font-size: 0;
}

.shRadioChatOnly .shProPlayer__play i {
	font-size: 24px;
}

.shRadioChatOnly .shProPlayer__mute {
	width: 52px;
	height: 52px;
	border-radius: 50%;
}

.shRadioChatOnly .shProPlayer__stats {
	grid-area: stats;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	justify-content: stretch;
	padding-top: 0;
	border: 1px solid rgba(36, 200, 255, .16);
	border-radius: 9px;
	background: rgba(2, 8, 17, .72);
}

.shRadioChatOnly .shProPlayer__stats > div {
	min-height: 76px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 12px;
	border-left: 1px solid rgba(36, 200, 255, .12);
	text-align: center;
}

.shRadioChatOnly .shProPlayer__stats > div:first-child {
	border-left: 0;
}

.shRadioChatOnly .shProPlayer__stats strong {
	margin-top: 4px;
	font-size: 18px;
}

.shRadioChatOnly .shProPlayer__connection {
	right: 18px;
	bottom: 7px;
}

.shRadioChatOnly .shNativeChat {
	min-height: 560px;
	border-color: rgba(36, 200, 255, .36);
	border-radius: 12px;
	background:
		linear-gradient(145deg, rgba(1, 8, 17, .99), rgba(3, 12, 23, .98));
}

.shRadioChatOnly .shNativeChat__messages {
	min-height: 390px;
	max-height: 520px;
}

.shRadioChatOnly__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 10px 16px;
	border: 1px solid rgba(36, 200, 255, .22);
	border-radius: 9px;
	background: rgba(2, 9, 18, .84);
}

.shRadioChatOnly__footerBrand img {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

.shRadioChatOnly__footerBrand strong,
.shRadioChatOnly__footerBrand span {
	display: block;
}

.shRadioChatOnly__footerBrand strong {
	color: #dbeeff;
	font-size: 11px;
	text-transform: uppercase;
}

.shRadioChatOnly__footerBrand span {
	color: #738da1;
	font-size: 8px;
	text-transform: uppercase;
}

.shRadioChatOnly__footer > a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #80e7ff !important;
	font-size: 10px;
	font-weight: 900;
	text-decoration: none !important;
	text-transform: uppercase;
}

@media screen and (max-width: 980px) {
	.shRadioChatOnly .shProPlayer {
		grid-template-columns: 210px minmax(0, 1fr);
		grid-template-areas:
			"brand now"
			"art controls"
			"stats stats";
	}

	.shRadioChatOnly .shProPlayer__disc {
		max-width: 210px;
	}
}

@media screen and (max-width: 680px) {
	.shRadioChatOnly__header,
	.shRadioChatOnly__footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.shRadioChatOnly .shProPlayer {
		grid-template-columns: 1fr;
		grid-template-areas:
			"brand"
			"now"
			"art"
			"controls"
			"stats";
	}

	.shRadioChatOnly .shProPlayer__disc,
	.shRadioChatOnly .shProPlayer__art {
		max-width: 280px;
		margin-inline: auto;
	}

	.shRadioChatOnly .shProPlayer__stats {
		grid-template-columns: 1fr;
	}

	.shRadioChatOnly .shProPlayer__stats > div {
		border-top: 1px solid rgba(36, 200, 255, .12);
		border-left: 0;
	}

	.shRadioChatOnly .shProPlayer__stats > div:first-child {
		border-top: 0;
	}

	.shRadioChatOnly .shProPlayer__controls {
		flex-wrap: wrap;
	}

	.shRadioChatOnly .shProPlayer__volume {
		flex-basis: 150px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shRadioChatOnly__onAir i {
		animation: none;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.9.7 Player Control Polish
   ========================================================= */

.shProPlayer__controls {
	align-items: stretch;
	justify-content: center;
	gap: 16px;
}

.shProPlayer__transport {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.shProPlayer__skip {
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 9px;
	color: #7695aa;
	background: rgba(4, 16, 30, .78);
	opacity: .72;
	cursor: not-allowed;
}

.shProPlayer__play {
	min-width: 150px;
	height: 52px;
	border-radius: 12px;
}

.shProPlayer__volumeGroup {
	min-width: 210px;
	display: flex;
	flex: 1 1 260px;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
	padding: 7px 12px 8px;
	border: 1px solid rgba(36, 200, 255, .12);
	border-radius: 10px;
	background:
		linear-gradient(
			145deg,
			rgba(4, 16, 30, .70),
			rgba(7, 24, 41, .54)
		);
}

.shProPlayer__volumeHeader {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-inline: 2px;
}

.shProPlayer__volumeHeader > span {
	color: #7f9aaf;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .10em;
	text-transform: uppercase;
}

.shProPlayer__volumeValue {
	width: auto;
	color: #9ceeff;
	font-size: 11px;
	font-weight: 950;
	text-align: right;
	text-shadow: 0 0 10px rgba(36, 200, 255, .28);
}

.shProPlayer__volumeRow {
	display: flex;
	align-items: center;
	gap: 10px;
}

.shProPlayer__mute {
	width: 42px;
	height: 42px;
}

.shProPlayer__volume {
	min-width: 120px;
	flex: 1 1 auto;
}

.shProPlayer__volume input {
	height: 7px;
	border-radius: 999px;
	background:
		linear-gradient(
			90deg,
			var(--sh-blue),
			color-mix(in srgb, var(--sh-blue) 72%, white)
		);
	filter: drop-shadow(0 0 5px rgba(36, 200, 255, .24));
}

.shProPlayer__chatButton {
	min-width: 116px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 15px;
	border: 1px solid color-mix(
		in srgb,
		var(--sh-orange) 55%,
		transparent
	);
	border-radius: 10px;
	color: #ffd1b5 !important;
	font-size: 9px;
	font-weight: 950;
	letter-spacing: .06em;
	text-decoration: none !important;
	text-transform: uppercase;
	background:
		linear-gradient(
			145deg,
			rgba(255, 100, 16, .13),
			rgba(8, 18, 34, .82)
		);
	box-shadow:
		0 0 16px color-mix(
			in srgb,
			var(--sh-orange) 15%,
			transparent
		);
	transition:
		border-color .18s ease,
		color .18s ease,
		transform .18s ease,
		background .18s ease;
}

.shProPlayer__chatButton:hover {
	border-color: color-mix(
		in srgb,
		var(--sh-orange) 88%,
		white
	);
	color: #fff !important;
	background:
		linear-gradient(
			145deg,
			rgba(255, 100, 16, .22),
			rgba(10, 25, 43, .92)
		);
	transform: translateY(-1px);
}

.shNowPlaying__metrics > div {
	border-radius: 8px;
	transition:
		background .18s ease,
		box-shadow .18s ease;
}

.shNowPlaying__metrics > div:hover {
	background: rgba(36, 200, 255, .045);
	box-shadow:
		inset 0 0 16px rgba(36, 200, 255, .035);
}

/* Dedicated Radio + Chat page tuning */
.shRadioChatOnly .shProPlayer__controls {
	align-items: center;
}

.shRadioChatOnly .shProPlayer__transport {
	flex: 0 0 auto;
}

.shRadioChatOnly .shProPlayer__play {
	width: 76px;
	min-width: 76px;
	height: 76px;
}

.shRadioChatOnly .shProPlayer__skip {
	width: 52px;
	height: 52px;
	border-radius: 10px;
}

.shRadioChatOnly .shProPlayer__volumeGroup {
	max-width: 330px;
}

.shRadioChatOnly .shProPlayer__chatButton {
	display: none;
}

@media screen and (max-width: 980px) {
	.shProPlayer__controls {
		flex-wrap: wrap;
	}

	.shProPlayer__volumeGroup {
		order: 3;
		flex-basis: 100%;
	}

	.shProPlayer__chatButton {
		min-height: 46px;
	}
}

@media screen and (max-width: 620px) {
	.shProPlayer__transport {
		width: 100%;
	}

	.shProPlayer__play {
		flex: 1 1 auto;
	}

	.shProPlayer__chatButton {
		width: 100%;
		min-height: 44px;
	}

	.shRadioChatOnly .shProPlayer__transport {
		width: 100%;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.9.8.3 Player Layout Fix
   ========================================================= */

/* Faded custom image inside the player without overpowering content */
.shProPlayer {
	isolation: isolate;
	overflow: hidden;
}

.shProPlayer::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		linear-gradient(
			90deg,
			rgba(2, 10, 22, .90),
			rgba(3, 12, 25, .76) 45%,
			rgba(24, 8, 8, .86)
		),
		var(--sh-hero-background);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: .30;
	filter: saturate(.82) contrast(.92);
}

.shProPlayer > * {
	position: relative;
	z-index: 2;
}

/* Clean desktop radio bar grid */
.shAppHome:not(.shRadioChatOnly) .shProPlayer {
	grid-template-columns:
		minmax(205px, .82fr)
		minmax(250px, 1.18fr)
		96px
		minmax(150px, .68fr)
		minmax(220px, .92fr)
		minmax(250px, 1fr);
	grid-template-areas: "brand now art controls volume stats";
	align-items: center;
	gap: 16px;
	min-height: 126px;
	padding: 14px 18px;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
	grid-area: brand;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__now {
	grid-area: now;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
	grid-area: art;
	width: 88px;
	height: 88px;
	justify-self: center;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls {
	display: contents;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__transport {
	grid-area: controls;
	display: flex;
	align-items: center;
	justify-content: center;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__volumeGroup {
	grid-area: volume;
	min-width: 0;
	width: 100%;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__chatButton {
	display: none;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
	grid-area: stats;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-self: stretch;
	gap: 0;
	border: 1px solid rgba(255, 100, 16, .25);
	border-radius: 10px;
	background: rgba(4, 11, 21, .62);
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div {
	min-width: 0;
	display: flex;
	justify-content: center;
	flex-direction: column;
	padding: 10px 8px;
	border-left: 1px solid rgba(255, 255, 255, .09);
	text-align: center;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div:first-child {
	border-left: 0;
}

/* Title scrolls only inside its own area */
.shProPlayer__trackMarquee {
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	white-space: nowrap;
	mask-image: linear-gradient(
		90deg,
		transparent,
		#000 4%,
		#000 96%,
		transparent
	);
}

.shProPlayer__trackMarquee > strong {
	display: inline-block;
	min-width: 100%;
	padding-right: 36px;
	text-overflow: clip !important;
	animation: shTrackMarquee 13s linear infinite;
}

@keyframes shTrackMarquee {
	0%, 12% {
		transform: translateX(0);
	}
	78%, 100% {
		transform: translateX(calc(-100% + 230px));
	}
}

/* Short titles remain visually stable */
.shProPlayer__trackMarquee > strong:only-child {
	will-change: transform;
}

/* No broad halo around the spinner; tight neon directly behind it */
.shProPlayer__disc {
	position: relative;
	overflow: visible;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.shProPlayer__disc::before {
	content: "";
	position: absolute;
	inset: 7%;
	z-index: -1;
	border-radius: 50%;
	background:
		radial-gradient(
			circle at 34% 50%,
			rgba(0, 181, 255, .58),
			rgba(0, 181, 255, .18) 37%,
			transparent 62%
		),
		radial-gradient(
			circle at 68% 50%,
			rgba(255, 100, 16, .50),
			rgba(255, 100, 16, .15) 37%,
			transparent 62%
		);
	filter: blur(9px);
	opacity: .90;
}

.shProPlayer__disc img {
	position: relative;
	z-index: 1;
	object-fit: contain;
	object-position: 48% center;
	filter: none !important;
}

/* One centered play/pause control */
.shProPlayer__play {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.shProPlayer__play i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	height: 1em;
	margin: 0;
	line-height: 1;
	transform: none;
}

/* Dedicated Radio + Chat player */
.shRadioChatOnly .shProPlayer {
	grid-template-columns:
		minmax(280px, .90fr)
		minmax(320px, 1.25fr)
		minmax(190px, .58fr);
	grid-template-areas:
		"brand now art"
		"brand controls controls"
		"stats stats stats";
	background:
		linear-gradient(
			90deg,
			rgba(2, 10, 22, .82),
			rgba(3, 12, 25, .66) 50%,
			rgba(25, 8, 8, .76)
		);
}

.shRadioChatOnly .shProPlayer::after {
	opacity: .36;
}

.shRadioChatOnly .shProPlayer__controls {
	display: grid;
	grid-template-columns: minmax(100px, .42fr) minmax(230px, 1fr);
	align-items: center;
	justify-content: center;
	gap: 28px;
}

.shRadioChatOnly .shProPlayer__transport {
	display: flex;
	align-items: center;
	justify-content: center;
}

.shRadioChatOnly .shProPlayer__play {
	width: 76px;
	min-width: 76px;
	height: 76px;
	padding: 0;
	border-radius: 50%;
	font-size: 0;
}

.shRadioChatOnly .shProPlayer__play i {
	width: 26px;
	height: 26px;
	font-size: 26px;
}

.shRadioChatOnly .shProPlayer__volumeGroup {
	width: 100%;
	max-width: 360px;
	margin: 0 auto;
}

.shRadioChatOnly .shProPlayer__disc img {
	object-position: 47% center;
}

/* Remove any legacy skip controls if an old compiled template is still cached */
.shProPlayer__skip {
	display: none !important;
}

/* Responsive clean stacking */
@media screen and (max-width: 1320px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		grid-template-columns:
			minmax(190px, .8fr)
			minmax(235px, 1.15fr)
			86px
			minmax(135px, .62fr)
			minmax(205px, .9fr);
		grid-template-areas:
			"brand now art controls volume"
			"stats stats stats stats stats";
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
		min-height: 66px;
	}
}

@media screen and (max-width: 900px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		grid-template-columns: 88px minmax(0, 1fr);
		grid-template-areas:
			"brand now"
			"art controls"
			"volume volume"
			"stats stats";
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
		width: 82px;
		height: 82px;
	}

	.shRadioChatOnly .shProPlayer__controls {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 600px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		grid-template-columns: 1fr;
		grid-template-areas:
			"brand"
			"now"
			"art"
			"controls"
			"volume"
			"stats";
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
		grid-template-columns: 1fr;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div {
		border-top: 1px solid rgba(255,255,255,.08);
		border-left: 0;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div:first-child {
		border-top: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shProPlayer__trackMarquee > strong {
		animation: none;
	}
}

/* =========================================================
   Alpha 0.9.8.4 — Two-layer large Radio & Chat player disc
   ========================================================= */

.shRadioChatOnly .shProPlayer__disc {
	position: relative;
	display: grid;
	place-items: center;
	overflow: visible;
	aspect-ratio: 1;
}

.shRadioChatOnly .shProPlayer__discBack,
.shRadioChatOnly .shProPlayer__discFront {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
	object-position: center;
	transform-origin: 50% 50%;
	filter: none !important;
}

.shRadioChatOnly .shProPlayer__discBack {
	z-index: 1;
}

.shRadioChatOnly .shProPlayer__discFront {
	z-index: 2;
	pointer-events: none;
}

/* Only the rear circuit medallion rotates */
.shRadioChatOnly .is-online .shProPlayer__discBack,
.shRadioChatOnly.is-online .shProPlayer__discBack {
	animation: shDiscBackSpin 13s linear infinite;
}

.shRadioChatOnly [data-connection-state="buffering"]
	.shProPlayer__discBack {
	animation: shDiscBackSpin 20s linear infinite;
}

.shRadioChatOnly [data-connection-state="offline"]
	.shProPlayer__discBack {
	animation: none;
}

/* Prevent the old whole-container spin from moving the fixed front logo */
.shRadioChatOnly .is-online .shProPlayer__disc,
.shRadioChatOnly.is-online .shProPlayer__disc,
.shRadioChatOnly [data-connection-state="buffering"]
	.shProPlayer__disc {
	animation: none !important;
}

/* Tight blue/orange light immediately behind both layers */
.shRadioChatOnly .shProPlayer__disc::before {
	inset: 10%;
	z-index: 0;
	filter: blur(7px);
	opacity: .72;
}

@keyframes shDiscBackSpin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.shRadioChatOnly .shProPlayer__discBack {
		animation: none !important;
	}
}

/* =========================================================
   Alpha 0.9.9 — Frontend Branding + Large Player Polish
   ========================================================= */
.shRadioChatOnly .shProPlayer__nowPanel{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;text-align:center}
.shRadioChatOnly .shProPlayer__nowPanel .shRadioBar__label{margin-bottom:12px;color:#87eaff;font-size:11px;font-weight:950;letter-spacing:.14em;text-align:center;text-transform:uppercase}
.shRadioChatOnly .shProPlayer__trackMarquee{width:min(100%,720px);margin-inline:auto;overflow:hidden;text-align:center}
.shRadioChatOnly .shProPlayer__trackMarquee>strong{display:inline-block;min-width:100%;padding-inline:28px;color:#fff;font-size:clamp(34px,5vw,56px);font-weight:950;line-height:1.05;text-align:center;text-transform:uppercase;text-shadow:0 0 18px rgba(36,200,255,.16),0 0 18px rgba(255,100,16,.12)}
.shRadioChatOnly .shProPlayer__nowPanel>span:not(.shRadioBar__label){margin-top:10px;color:#ff9e58;font-size:clamp(16px,2vw,22px);font-weight:850;text-align:center}
.shRadioChatOnly .shRadioBar__visualizer{width:min(100%,720px);height:92px;justify-content:center;margin:24px auto 0}
.shRadioChatOnly .shRadioBar__visualizer span{width:6px}
.shRadioChatOnly .shProPlayer__play{width:auto;min-width:190px;height:58px;padding:0 24px;border:1px solid rgba(36,200,255,.72);border-radius:14px;gap:11px;font-size:11px;background:linear-gradient(135deg,rgba(0,126,183,.96),rgba(36,200,255,.96) 55%,rgba(255,100,16,.84));box-shadow:0 0 18px rgba(36,200,255,.24),inset 0 0 16px rgba(255,255,255,.06)}
.shRadioChatOnly .shProPlayer__play i{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;margin:0;font-size:21px;line-height:1}
.shRadioChatOnly .shProPlayer__play span{display:inline-block;font-size:10px;font-weight:950;letter-spacing:.08em;line-height:1;text-transform:uppercase}
.shRadioChatOnly .shProPlayer__play.is-playing{border-color:rgba(255,100,16,.84);background:linear-gradient(135deg,rgba(255,100,16,.96),rgba(255,156,68,.92) 42%,rgba(36,200,255,.88))}
.shRadioChatOnly .shProPlayer__discFront{filter:drop-shadow(-3px 0 5px rgba(0,176,255,.72)) drop-shadow(3px 0 5px rgba(255,100,16,.66))!important;z-index:3}
.shRadioChatOnly .shProPlayer__disc::after{content:"";position:absolute;inset:22%;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 38% 50%,rgba(0,181,255,.62),rgba(0,181,255,.18) 40%,transparent 64%),radial-gradient(circle at 65% 50%,rgba(255,100,16,.56),rgba(255,100,16,.16) 40%,transparent 64%);filter:blur(6px);opacity:.95}
.shRadioChatOnly .shProPlayer__discBack{z-index:2}
.shRadioChatOnly .shProPlayer__art{align-self:center}
.shRadioChatOnly__brand strong,.shRadioChatOnly__footerBrand strong,.shPlayerStatusBar__brand strong{letter-spacing:.05em}
@media(max-width:720px){.shRadioChatOnly .shProPlayer__trackMarquee>strong{font-size:clamp(28px,10vw,42px)}.shRadioChatOnly .shProPlayer__play{min-width:170px}}

/* =========================================================
   Alpha 0.10.0.8 — Seamless continuous track marquee
   ========================================================= */

.shProPlayer__trackMarquee {
	--sh-marquee-gap: 72px;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	white-space: nowrap;
	mask-image: linear-gradient(
		90deg,
		transparent,
		#000 4%,
		#000 96%,
		transparent
	);
}

.shProPlayer__trackMarqueeTrack {
	width: max-content;
	display: flex;
	align-items: center;
	gap: var(--sh-marquee-gap);
	animation: shTrackMarqueeContinuous 16s linear infinite;
	will-change: transform;
}

.shProPlayer__trackMarqueeTrack > strong {
	min-width: max-content;
	display: block;
	padding: 0;
	color: #07111d !important;
	font-weight: 950;
	letter-spacing: .025em;
	text-shadow:
		0 0 2px #71eaff,
		0 0 7px rgba(36, 200, 255, .95),
		0 0 15px rgba(0, 145, 255, .74),
		0 0 28px rgba(0, 92, 255, .42);
	-webkit-text-stroke: 1px rgba(93, 225, 255, .58);
}

@keyframes shTrackMarqueeContinuous {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(
			calc(-50% - (var(--sh-marquee-gap) / 2)),
			0,
			0
		);
	}
}

/* Large Radio & Chat title remains centred vertically while moving continuously. */
.shRadioChatOnly .shProPlayer__trackMarquee {
	width: min(100%, 720px);
	margin-inline: auto;
}

.shRadioChatOnly .shProPlayer__trackMarqueeTrack > strong {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.08;
	text-align: center;
	text-transform: uppercase;
}

@media screen and (max-width: 720px) {
	.shProPlayer__trackMarquee {
		--sh-marquee-gap: 46px;
	}

	.shProPlayer__trackMarqueeTrack {
		animation-duration: 13s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shProPlayer__trackMarqueeTrack {
		animation-duration: 30s;
	}
}

/* =========================================================
   Alpha 0.10.2.1 — Spinner and metadata recovery
   ========================================================= */

/*
 * Decorative discs must continue rotating even if an external metadata
 * provider is slow or temporarily unavailable.
 */
.shProPlayer__discSingle {
	animation: shDiscAlwaysSpin 13s linear infinite !important;
	transform-origin: 50% 50%;
}

.shRadioChatOnly .shProPlayer__discBack {
	animation: shDiscAlwaysSpin 13s linear infinite !important;
	transform-origin: 50% 50%;
}

.shRadioChatOnly .shProPlayer__discFront {
	animation: none !important;
}

@keyframes shDiscAlwaysSpin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.shProPlayer__discSingle,
	.shRadioChatOnly .shProPlayer__discBack {
		animation-duration: 30s !important;
	}
}

/* =========================================================
   Alpha 0.10.3.1 — Compact bar + black gradient-glow chat title
   ========================================================= */

/*
 * Keep established component sizes:
 * Logo 100x100, artwork 120x120, horizontal padding 18px.
 * Reduce only vertical padding to 7px so the bar can reach 134px.
 */
.shAppHome:not(.shRadioChatOnly) .shProPlayer {
	position: sticky;
	top: 10px;
	z-index: 950;
	display: grid;
	grid-template-columns:
		100px
		82px
		120px
		minmax(260px, 1fr)
		150px
		minmax(205px, 230px)
		minmax(245px, 275px);
	align-items: center;
	column-gap: 14px;
	width: 100%;
	min-height: 134px;
	padding: 7px 18px;
	overflow: hidden;
}

/* Logo + LIVE */
.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
	grid-column: 1 / 3;
	grid-row: 1;
	display: grid;
	grid-template-columns: 100px 82px;
	align-items: center;
	height: 100%;
	min-width: 0;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__disc {
	grid-column: 1;
	width: 100px;
	height: 100px;
	min-width: 100px;
	min-height: 100px;
	align-self: center;
	justify-self: center;
	margin: 0;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__disc img {
	width: 100px;
	height: 100px;
	object-fit: contain;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveBadge {
	grid-column: 2;
	align-self: center;
	justify-self: center;
	margin: 0;
	white-space: nowrap;
}

/* Artwork */
.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
	grid-column: 3;
	grid-row: 1;
	width: 120px;
	height: 120px;
	min-width: 120px;
	margin: 0;
	align-self: center;
	justify-self: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__art img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center;
	border-radius: 12px;
}

/* Metadata */
.shAppHome:not(.shRadioChatOnly) .shProPlayer__now {
	grid-column: 4;
	grid-row: 1;
	min-width: 0;
	align-self: center;
	display: flex;
	justify-content: center;
	flex-direction: column;
	padding: 0;
}

.shAppHome:not(.shRadioChatOnly)
	.shProPlayer__trackMarqueeTrack > strong {
	color: #fff !important;
	text-shadow: none !important;
	-webkit-text-stroke: 0 !important;
}

/* Controls */
.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls {
	grid-column: 5 / 7;
	grid-row: 1;
	display: grid;
	grid-template-columns: 150px minmax(205px, 230px);
	align-items: center;
	column-gap: 14px;
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: 0;
	margin: 0;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__transport {
	grid-column: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__play {
	align-self: center;
	justify-self: center;
	margin: 0;
	transform: none !important;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__volumeGroup {
	grid-column: 2;
	display: flex;
	align-self: center;
	justify-content: center;
	flex-direction: column;
	min-width: 0;
	width: 100%;
	margin: 0;
	padding: 13px 14px;
	transform: none !important;
}

/* Stats */
.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
	grid-column: 7;
	grid-row: 1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-self: center;
	width: 100%;
	min-width: 0;
	margin: 0;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	min-width: 0;
	padding: 12px 7px;
	text-align: center;
}

/*
 * Radio & Chat title:
 * black text with a blue-to-orange gradient glow.
 */
.shRadioChatOnly .shProPlayer__trackMarqueeTrack > strong,
.shRadioChatOnly [data-role="title"] {
	color: #030609 !important;
	-webkit-text-fill-color: #030609 !important;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .12);

	font-family:
		"Trebuchet MS",
		"Arial Narrow",
		"Segoe UI",
		sans-serif !important;

	font-size: clamp(30px, 4.2vw, 52px) !important;
	font-weight: 900 !important;
	letter-spacing: .055em;
	line-height: 1.08;
	text-transform: uppercase;

	text-shadow:
		-3px 0 3px rgba(51, 196, 255, .92),
		-7px 0 10px rgba(0, 120, 255, .62),
		3px 0 3px rgba(255, 150, 45, .92),
		7px 0 10px rgba(255, 82, 0, .62),
		0 0 18px rgba(80, 130, 255, .28) !important;
}

/* Tablet */
@media screen and (max-width: 1160px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		position: relative;
		top: auto;
		grid-template-columns: 182px 108px minmax(245px, 1fr);
		grid-template-rows: auto auto auto;
		row-gap: 12px;
		min-height: auto;
		padding: 14px 18px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
		grid-column: 1;
		grid-row: 1;
		grid-template-columns: 100px 82px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
		grid-column: 2;
		grid-row: 1;
		width: 108px;
		height: 108px;
		min-width: 108px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__now {
		grid-column: 3;
		grid-row: 1;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls {
		grid-column: 1 / 4;
		grid-row: 2;
		grid-template-columns: 150px minmax(220px, 1fr);
		justify-content: center;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
		grid-column: 1 / 4;
		grid-row: 3;
	}
}

/* Mobile */
@media screen and (max-width: 720px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		grid-template-columns: 88px minmax(0, 1fr);
		grid-template-rows: auto auto auto auto;
		gap: 12px;
		min-height: 0;
		padding: 14px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
		grid-column: 1 / 3;
		grid-row: 1;
		grid-template-columns: 100px 82px;
		justify-content: center;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
		grid-column: 1;
		grid-row: 2;
		width: 88px;
		height: 88px;
		min-width: 88px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__now {
		grid-column: 2;
		grid-row: 2;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls {
		grid-column: 1 / 3;
		grid-row: 3;
		grid-template-columns: 1fr;
		row-gap: 10px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__transport,
	.shAppHome:not(.shRadioChatOnly) .shProPlayer__volumeGroup {
		grid-column: 1;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
		grid-column: 1 / 3;
		grid-row: 4;
	}

	.shRadioChatOnly .shProPlayer__trackMarqueeTrack > strong,
	.shRadioChatOnly [data-role="title"] {
		font-size: clamp(24px, 8vw, 36px) !important;
		letter-spacing: .035em;
	}
}

/* =========================================================
   Alpha 0.10.3.2 — Unified DJ experience
   ========================================================= */

.shOnAirDj,
.shDjCard,
.shScheduleShow {
	text-decoration: none !important;
	transition:
		transform .18s ease,
		border-color .18s ease,
		box-shadow .18s ease,
		background .18s ease;
}

.shOnAirDj:hover,
.shDjCard:hover,
.shScheduleShow:hover {
	transform: translateY(-2px);
	border-color: rgba(36, 200, 255, .42);
	box-shadow:
		0 12px 30px rgba(0, 0, 0, .28),
		0 0 18px rgba(36, 200, 255, .10);
}

.shOnAirDj:focus-visible,
.shDjCard:focus-visible,
.shScheduleShow:focus-visible {
	outline: 2px solid rgba(36, 200, 255, .85);
	outline-offset: 3px;
}

.shOnAirDj__avatar img,
.shDjCard__avatar img,
.shScheduleShow__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.shOnAirDj__avatar img,
.shDjCard__avatar img {
	border-radius: inherit;
}

.shDjCard__copy,
.shOnAirDj__copy,
.shScheduleShow__copy {
	min-width: 0;
}

.shDjCard__copy strong,
.shDjCard__copy span,
.shDjCard__copy small,
.shOnAirDj__copy strong,
.shOnAirDj__copy span,
.shOnAirDj__copy small {
	text-decoration: none !important;
}

/* =========================================================
   Alpha 0.10.3.6 — Integrated Live DJ bar
   ========================================================= */

.shAppHome:not(.shRadioChatOnly) .shProPlayer {
	grid-template-rows: minmax(120px, auto) auto;
	row-gap: 8px;
	padding-bottom: 8px;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand,
.shAppHome:not(.shRadioChatOnly) .shProPlayer__art,
.shAppHome:not(.shRadioChatOnly) .shProPlayer__now,
.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls,
.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats {
	grid-row: 1;
}

.shProPlayer__connection--hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjBar {
	grid-column: 1 / -1;
	grid-row: 2;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.shProPlayer__liveDjInner {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	min-height: 38px;
	padding: 8px 14px;
	border: 1px solid rgba(36, 200, 255, .20);
	border-radius: 9px;
	color: #dcecf7 !important;
	text-decoration: none !important;
	background:
		linear-gradient(
			90deg,
			rgba(4, 15, 28, .86),
			rgba(7, 24, 43, .90) 48%,
			rgba(31, 17, 9, .86)
		);
}

a.shProPlayer__liveDjInner:hover {
	border-color: rgba(36, 200, 255, .44);
	color: #fff !important;
}

.shProPlayer__liveDjPulse {
	width: 8px;
	height: 8px;
	flex: 0 0 8px;
	border-radius: 50%;
	background: #22efbd;
	box-shadow: 0 0 12px rgba(34, 239, 189, .90);
	animation: shRadioPulse 1.4s ease-in-out infinite;
}

.shProPlayer__liveDjLabel {
	color: #6ff6d7;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.shProPlayer__liveDjInner strong {
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}

.shProPlayer__liveDjInner span {
	font-size: 11px;
}

.shProPlayer__liveDjInner b {
	margin-right: 4px;
	color: #ff9b58;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.shProPlayer__liveDjSep {
	color: rgba(122, 220, 255, .48);
}

@media screen and (max-width: 720px) {
	.shProPlayer__liveDjInner {
		align-items: flex-start;
		justify-content: flex-start;
	}

	.shProPlayer__liveDjSep {
		display: none;
	}
}

/* =========================================================
   Alpha 0.10.3.9 — Single-line Live DJ status bars
   ========================================================= */

.shProPlayer__liveDjInner {
	flex-wrap: nowrap;
	justify-content: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.shProPlayer__liveDjInner > * {
	flex: 0 0 auto;
	min-width: 0;
}

.shProPlayer__liveDjInner > span:not(.shProPlayer__liveDjPulse):not(.shProPlayer__liveDjSep),
.shProPlayer__liveDjInner > strong {
	overflow: hidden;
	text-overflow: ellipsis;
}

@media screen and (max-width: 720px) {
	.shProPlayer__liveDjInner {
		align-items: center;
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.shProPlayer__liveDjInner::-webkit-scrollbar {
		display: none;
	}

	.shProPlayer__liveDjSep {
		display: inline;
	}
}

/* =========================================================
   Alpha 0.10.3.10 — 130px compact desktop radio player
   ========================================================= */

@media screen and (min-width: 1161px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer {
		grid-template-columns:
			82px
			68px
			92px
			minmax(240px, 1fr)
			138px
			minmax(190px, 215px)
			minmax(225px, 255px);
		grid-template-rows: 92px 26px;
		column-gap: 12px;
		row-gap: 4px;
		box-sizing: border-box;
		height: 130px;
		min-height: 130px;
		padding: 4px 12px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__brand {
		grid-template-columns: 82px 68px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__disc,
	.shAppHome:not(.shRadioChatOnly) .shProPlayer__disc img {
		width: 82px;
		height: 82px;
		min-width: 82px;
		min-height: 82px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__art {
		width: 92px;
		height: 92px;
		min-width: 92px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__controls {
		grid-template-columns: 138px minmax(190px, 215px);
		column-gap: 12px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__volumeGroup {
		padding: 8px 12px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__stats > div {
		padding: 8px 6px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjBar {
		align-self: stretch;
		height: 26px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjInner {
		height: 26px;
		min-height: 26px;
		box-sizing: border-box;
		gap: 7px;
		padding: 3px 10px;
		border-radius: 7px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjPulse {
		width: 7px;
		height: 7px;
		flex-basis: 7px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjLabel {
		font-size: 9px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjInner strong {
		font-size: 11px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjInner span {
		font-size: 10px;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjInner b {
		font-size: 8px;
	}
}

/* =========================================================
   Alpha 0.10.3.11 — Full-width Live DJ bar correction
   ========================================================= */

@media screen and (min-width: 1161px) {
	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjBar {
		position: absolute;
		left: 12px;
		right: 12px;
		bottom: 4px;
		z-index: 3;
		display: block;
		width: auto;
		max-width: none;
		height: 26px;
		margin: 0;
	}

	.shAppHome:not(.shRadioChatOnly) .shProPlayer__liveDjInner {
		display: flex;
		width: 100%;
		max-width: none;
		justify-content: center;
		box-sizing: border-box;
	}
}

/* =========================================================
   Alpha 0.10.3.12 — Dedicated big radio full-width Live DJ bar
   ========================================================= */

/*
 * The dedicated Radio + Chat player uses its own grid layout. The Live DJ
 * element was being auto-placed into the first grid column, which is why it
 * stayed narrow. Force it onto a new row spanning the complete player width.
 */
.shRadioChatOnly .shProPlayer__liveDjBar {
	grid-column: 1 / -1 !important;
	grid-row: 4 !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0;
	position: static !important;
	align-self: stretch;
	justify-self: stretch;
}

.shRadioChatOnly .shProPlayer__liveDjInner {
	display: flex;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
	box-sizing: border-box;
	justify-content: center;
	flex-wrap: nowrap;
	white-space: nowrap;
	overflow: hidden;
}

@media screen and (max-width: 720px) {
	.shRadioChatOnly .shProPlayer__liveDjInner {
		justify-content: flex-start;
		overflow-x: auto;
		overflow-y: hidden;
	}
}

/* =========================================================
   Alpha 0.10.3.13 — Dedicated player minimize / expand toggle
   ========================================================= */

.shRadioChatOnly__headerActions {
	display: flex;
	align-items: center;
	gap: 18px;
}

.shRadioChatOnly__playerToggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 104px;
	height: 52px;
	padding: 6px 13px;
	border: 1px solid var(--sh-orange);
	border-radius: 12px;
	background: rgba(8, 11, 18, .88);
	color: var(--sh-orange);
	font: inherit;
	font-size: 10px;
	font-weight: 950;
	line-height: 1.05;
	letter-spacing: .04em;
	text-align: center;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 0 18px rgba(255, 100, 16, .08);
	transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.shRadioChatOnly__playerToggle:hover,
.shRadioChatOnly__playerToggle:focus-visible {
	background: rgba(255, 100, 16, .12);
	color: #fff;
	box-shadow: 0 0 20px rgba(255, 100, 16, .22);
	transform: translateY(-1px);
}

.shRadioChatOnly__playerToggle i {
	font-size: 14px;
}

@media screen and (min-width: 981px) {
	.shRadioChatOnly.shPlayerMinimized .shProPlayer {
		grid-template-columns:
			92px
			92px
			minmax(235px, 1.15fr)
			150px
			minmax(210px, .9fr)
			minmax(245px, 1fr);
		grid-template-areas:
			"brand art now controls controls stats"
			"liveDj liveDj liveDj liveDj liveDj liveDj";
		grid-template-rows: 88px 28px;
		column-gap: 13px;
		row-gap: 5px;
		height: 130px;
		min-height: 130px;
		padding: 5px 12px 4px;
		overflow: hidden;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__brand {
		grid-area: brand;
		align-self: center;
		justify-content: center;
		gap: 4px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__disc {
		width: 66px;
		height: 66px;
		min-width: 66px;
		aspect-ratio: 1;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveBadge {
		padding: 3px 9px;
		font-size: 9px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__art {
		grid-area: art;
		width: 82px;
		height: 82px;
		min-width: 82px;
		aspect-ratio: 1;
		align-self: center;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__now {
		grid-area: now;
		align-self: center;
		min-width: 0;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__now .shRadioBar__label {
		font-size: 8px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__trackMarquee {
		margin-top: 1px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__now strong,
	.shRadioChatOnly.shPlayerMinimized .shProPlayer__now > strong {
		font-size: 13px;
		line-height: 1.1;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__now > span:not(.shRadioBar__label) {
		margin-top: 3px;
		font-size: 10px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.shRadioChatOnly.shPlayerMinimized .shRadioBar__visualizer {
		height: 18px;
		margin-top: 5px;
	}

	.shRadioChatOnly.shPlayerMinimized .shRadioBar__visualizer span {
		width: 3px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__controls {
		grid-area: controls;
		align-self: center;
		display: grid;
		grid-template-columns: 150px minmax(210px, 1fr);
		gap: 12px;
		padding: 0;
		border-top: 0;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__transport {
		width: 100%;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__play {
		width: 150px;
		min-width: 150px;
		height: 48px;
		border-radius: 10px;
		font-size: 10px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__play i {
		font-size: 14px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__volumeGroup {
		min-width: 0;
		padding: 7px 10px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__mute {
		width: 38px;
		height: 38px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__stats {
		grid-area: stats;
		align-self: center;
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		height: 58px;
		padding: 0;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__stats > div {
		min-height: 0;
		height: 58px;
		padding: 5px 4px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__stats .shRadioBar__label {
		font-size: 7px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__stats strong {
		margin-top: 3px;
		font-size: 10px;
		white-space: nowrap;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveDjBar {
		grid-area: liveDj;
		grid-column: 1 / -1 !important;
		grid-row: 2 !important;
		height: 28px;
		align-self: stretch;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveDjInner {
		height: 28px;
		min-height: 28px;
		padding: 3px 10px;
		gap: 7px;
		border-radius: 7px;
		font-size: 9px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveDjInner span,
	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveDjInner strong {
		font-size: 9px;
	}

	.shRadioChatOnly.shPlayerMinimized .shProPlayer__liveDjInner b {
		font-size: 7px;
	}
}

@media screen and (max-width: 980px) {
	.shRadioChatOnly__playerToggle {
		display: none;
	}
}

/* Scheduled live-show announcement inside Sonic Chat. */
.shNativeMessage--system {
	border-color: rgba(255, 96, 32, 0.62);
	background:
		linear-gradient(135deg, rgba(255, 77, 18, 0.18), rgba(255, 153, 0, 0.07)),
		rgba(10, 13, 22, 0.94);
	box-shadow:
		inset 3px 0 0 rgba(255, 103, 31, 0.95),
		0 10px 28px rgba(0, 0, 0, 0.18);
}

.shNativeMessage--system .shNativeMessage__avatar {
	width: 48px;
	border-radius: 10px;
	font-size: 0.68rem;
	letter-spacing: 0.07em;
	background: linear-gradient(135deg, #ff3f18, #ff9c16);
	box-shadow: 0 0 18px rgba(255, 92, 22, 0.42);
}

.shNativeMessage--system .shNativeMessage__name {
	color: #ff9a50;
	text-transform: uppercase;
	letter-spacing: 0.045em;
}

.shNativeMessage--system .shNativeMessage__text {
	font-weight: 700;
	color: rgba(255, 255, 255, 0.96);
}


/* User-facing hero background picker */
.shAppHero { position: relative; overflow: hidden; }
.shHeroPicker { position: absolute; z-index: 18; left: 0; top: 50%; transform: translateY(-50%); pointer-events: none; }
.shHeroPicker__toggle,
.shHeroPicker__panel { pointer-events: auto; }
.shHeroPicker__toggle { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 46px; min-height: 154px; padding: 13px 8px; border: 1px solid rgba(255,128,31,.65); border-left: 0; border-radius: 0 14px 14px 0; background: linear-gradient(180deg,rgba(7,22,37,.97),rgba(12,31,48,.96)); box-shadow: 0 0 22px rgba(255,102,0,.24), 8px 0 25px rgba(0,0,0,.32); color: #fff; cursor: pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; transition:transform .25s ease, opacity .25s ease, box-shadow .25s ease; }
.shHeroPicker__toggle i { color: var(--sh-orange); font-size: 17px; }
.shHeroPicker__toggle span { writing-mode: vertical-rl; transform: rotate(180deg); text-transform: uppercase; letter-spacing: 1.6px; font-size: 10px; font-weight: 800; }
.shHeroPicker__toggle:hover { box-shadow: 0 0 28px rgba(255,102,0,.42), 8px 0 28px rgba(0,0,0,.36); }
.shHeroPicker__panel { width: 290px; max-height: min(560px,calc(100vh - 170px)); margin-left: 0; padding: 14px; border: 1px solid rgba(255,128,31,.56); border-left: 0; border-radius: 0 16px 16px 0; background: linear-gradient(180deg,rgba(5,17,30,.985),rgba(8,28,43,.985)); box-shadow: 18px 0 42px rgba(0,0,0,.52), 0 0 28px rgba(255,102,0,.16); transform: translateX(calc(-100% - 4px)); opacity: 0; visibility: hidden; transition: transform .28s ease, opacity .22s ease, visibility .22s ease; }
.shHeroPicker.is-open .shHeroPicker__panel { transform: translateX(0); opacity:1; visibility:visible; }
.shHeroPicker.is-open .shHeroPicker__toggle { transform: translate(290px,-50%); opacity:0; pointer-events:none; }
.shHeroPicker__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; padding-bottom:11px; border-bottom:1px solid rgba(94,207,255,.16); }
.shHeroPicker__heading strong { display:block; font-size:14px; color:#fff; }
.shHeroPicker__heading span { display:block; margin-top:3px; font-size:10px; line-height:1.35; color:#91aabd; }
.shHeroPicker__heading button { width:30px; height:30px; flex:0 0 30px; border:1px solid rgba(255,255,255,.12); border-radius:8px; background:rgba(255,255,255,.04); color:#b9cbd8; cursor:pointer; }
.shHeroPicker__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; max-height:410px; overflow:auto; padding:2px 4px 2px 1px; scrollbar-width:thin; }
.shHeroPicker__choice { position:relative; padding:0; overflow:hidden; border:1px solid rgba(92,180,225,.22); border-radius:9px; background:#071522; color:#fff; cursor:pointer; text-align:left; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.shHeroPicker__choice:hover { transform:translateY(-2px); border-color:rgba(255,128,31,.72); box-shadow:0 8px 18px rgba(0,0,0,.32); }
.shHeroPicker__thumb { display:block; aspect-ratio:16/9; background-size:cover; background-position:center; }
.shHeroPicker__name { display:block; overflow:hidden; padding:7px 8px; font-size:10px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; color:#c5d7e3; }
.shHeroPicker__choice > i { position:absolute; right:6px; top:6px; display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:var(--sh-orange); color:#fff; font-size:10px; opacity:0; transform:scale(.65); transition:opacity .16s ease,transform .16s ease; }
.shHeroPicker__choice.is-selected { border-color:var(--sh-orange); box-shadow:0 0 0 1px var(--sh-orange),0 0 18px rgba(255,102,0,.28); }
.shHeroPicker__choice.is-selected > i { opacity:1; transform:scale(1); }
.shHeroPicker__reset { width:100%; margin-top:12px; padding:9px 11px; border:1px solid rgba(255,255,255,.12); border-radius:8px; background:rgba(255,255,255,.04); color:#bcd0df; font-size:11px; font-weight:700; cursor:pointer; }
.shHeroPicker__reset:hover { border-color:rgba(255,128,31,.55); color:#fff; }
@media (max-width: 700px) {
  .shHeroPicker { top:auto; bottom:16px; transform:none; }
  .shHeroPicker__toggle { top:auto; bottom:0; transform:none; width:42px; min-height:118px; }
  .shHeroPicker__panel { width:min(280px,calc(100vw - 54px)); max-height:65vh; }
  .shHeroPicker.is-open .shHeroPicker__toggle { transform:translateX(min(280px,calc(100vw - 54px))); }
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.5.0.3 Fixed Full-Width Player Dock
   ========================================================= */

/* Reserve space so the fixed player never covers the final portal content. */
.shAppHome:not(.shRadioChatOnly) {
	padding-bottom: 156px;
}

/* The main portal player is a permanent browser-width dock. Dedicated
   Radio + Chat keeps its existing embedded player layout. */
.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	top: auto;
	z-index: 10000;
	width: 100vw;
	max-width: none;
	box-sizing: border-box;
	grid-template-columns:
		minmax(180px, .72fr)
		minmax(260px, 1.2fr)
		78px
		minmax(285px, 1fr)
		minmax(118px, .42fr);
	gap: 14px;
	padding: 10px max(18px, calc((100vw - 1500px) / 2));
	padding-bottom: max(10px, env(safe-area-inset-bottom));
	border-width: 1px 0 0;
	border-radius: 0;
	box-shadow:
		0 -18px 48px rgba(0, 0, 0, .62),
		0 -2px 24px color-mix(in srgb, var(--sh-blue) 17%, transparent),
		0 -1px 18px color-mix(in srgb, var(--sh-orange) 13%, transparent);
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
	width: 58px;
	height: 58px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art {
	width: 66px;
	height: 66px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play {
	min-width: 132px;
	height: 46px;
}

/* Stack the live stream statistics vertically in the right-hand column. */
.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats {
	align-self: stretch;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(3, minmax(0, 1fr));
	gap: 0;
	justify-content: stretch;
	border-left: 1px solid rgba(36, 200, 255, .16);
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div {
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 3px 0 3px 12px;
	border-top: 1px solid rgba(36, 200, 255, .10);
	border-left: 0;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div:first-child {
	border-top: 0;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats .shRadioBar__label {
	font-size: 8px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats strong {
	font-size: 10px;
	text-align: right;
}

/* Keep the Live Now strip attached to the bottom of the dock. */
.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveDjBar {
	grid-column: 1 / -1;
	margin: 0;
}

@media screen and (max-width: 1180px) {
	.shAppHome:not(.shRadioChatOnly) {
		padding-bottom: 190px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
		grid-template-columns: 150px minmax(210px, 1fr) 68px minmax(250px, 1fr) 112px;
		gap: 10px;
		padding-inline: 12px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
		width: 50px;
		height: 50px;
	}
}

@media screen and (max-width: 820px) {
	.shAppHome:not(.shRadioChatOnly) {
		padding-bottom: 226px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
		grid-template-columns: 58px minmax(0, 1fr) auto;
		grid-template-rows: auto auto auto;
		gap: 8px 10px;
		padding: 8px 10px max(8px, env(safe-area-inset-bottom));
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__brand {
		grid-column: 1;
		grid-row: 1;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveBadge {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now {
		grid-column: 2;
		grid-row: 1;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__controls {
		grid-column: 3;
		grid-row: 1;
		width: auto;
		padding: 0;
		border: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeGroup {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play {
		min-width: 48px;
		width: 48px;
		height: 44px;
		padding: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play span {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats {
		grid-column: 1 / -1;
		grid-row: 2;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: 1fr;
		width: 100%;
		border-top: 1px solid rgba(36, 200, 255, .12);
		border-left: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div {
		justify-content: center;
		padding: 5px 8px;
		border-top: 0;
		border-left: 1px solid rgba(36, 200, 255, .10);
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div:first-child {
		border-left: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveDjBar {
		grid-column: 1 / -1;
		grid-row: 3;
	}
}

@media screen and (max-width: 520px) {
	.shAppHome:not(.shRadioChatOnly) {
		padding-bottom: 206px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
		width: 46px;
		height: 46px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shRadioBar__visualizer {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div {
		flex-direction: column;
		gap: 1px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveDjInner {
		justify-content: flex-start;
		overflow: hidden;
		white-space: nowrap;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.5.0.4 Approved Dock Layout
   Exact desktop order: logo/live, show info, artwork, now playing,
   listen, volume, stacked listeners/bitrate.
   ========================================================= */

.shAppHome:not(.shRadioChatOnly) {
	padding-bottom: 150px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
	grid-template-columns:
		minmax(170px, .72fr)
		minmax(175px, .78fr)
		104px
		minmax(250px, 1.15fr)
		minmax(145px, .58fr)
		minmax(190px, .82fr)
		minmax(105px, .42fr);
	grid-template-rows: minmax(92px, auto);
	align-items: center;
	gap: 16px;
	padding-top: 11px;
	padding-bottom: max(11px, env(safe-area-inset-bottom));
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__brand {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-width: 0;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
	width: 82px;
	height: 82px;
	flex: 0 0 82px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveBadge {
	position: static;
	flex: 0 0 auto;
	min-width: 58px;
	justify-content: center;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfo {
	grid-column: 2;
	grid-row: 1;
	display: grid;
	align-content: center;
	gap: 5px;
	min-width: 0;
	text-align: center;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfoRow {
	display: grid;
	gap: 1px;
	min-width: 0;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfoRow span {
	color: var(--sh-orange);
	font-size: 9px;
	font-weight: 950;
	letter-spacing: .08em;
	line-height: 1.05;
	text-transform: uppercase;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfoRow:first-child span {
	color: #2cf0cb;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfoRow strong {
	overflow: hidden;
	color: #fff;
	font-size: 10px;
	font-weight: 850;
	line-height: 1.12;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art {
	grid-column: 3;
	grid-row: 1;
	width: 88px;
	height: 88px;
	justify-self: center;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now {
	grid-column: 4;
	grid-row: 1;
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	text-align: center;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now .shRadioBar__label {
	color: #2cf0cb;
	font-size: 10px;
	letter-spacing: .1em;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__trackMarquee {
	margin-top: 6px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now > span:not(.shRadioBar__label) {
	margin-top: 4px;
	font-size: 10px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shRadioBar__visualizer {
	width: 100%;
	max-width: none;
	margin: 9px 0 0;
}

/* Let transport and volume occupy their own approved dock columns. */
.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__controls {
	display: contents;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__transport {
	grid-column: 5;
	grid-row: 1;
	display: flex;
	justify-content: center;
	min-width: 0;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play {
	width: 100%;
	min-width: 0;
	max-width: 158px;
	height: 50px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeGroup {
	grid-column: 6;
	grid-row: 1;
	align-self: center;
	width: 100%;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 10px;
	background: rgba(7, 24, 39, .74);
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeHeader {
	justify-content: center;
	gap: 12px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats {
	grid-column: 7;
	grid-row: 1;
	align-self: stretch;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	border-left: 1px solid rgba(36, 200, 255, .16);
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div {
	justify-content: center;
	flex-direction: column;
	gap: 2px;
	padding: 7px 8px;
	text-align: center;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div:nth-child(3) {
	display: none;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats .shRadioBar__label {
	font-size: 9px;
}

.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats strong {
	font-size: 11px;
	text-align: center;
}

/* The former horizontal Live Now strip is replaced by the stacked show column. */
.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveDjBar {
	display: none;
}

@media screen and (max-width: 1220px) {
	.shAppHome:not(.shRadioChatOnly) {
		padding-bottom: 176px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
		grid-template-columns: 145px 150px 82px minmax(210px, 1fr) 126px minmax(165px, .8fr) 94px;
		gap: 10px;
		padding-inline: 10px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
		width: 68px;
		height: 68px;
		flex-basis: 68px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art {
		width: 72px;
		height: 72px;
	}
}

@media screen and (max-width: 900px) {
	.shAppHome:not(.shRadioChatOnly) {
		padding-bottom: 218px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer {
		grid-template-columns: 64px minmax(0, 1fr) 54px;
		grid-template-rows: auto auto auto;
		gap: 8px 10px;
		padding: 8px 10px max(8px, env(safe-area-inset-bottom));
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__brand {
		grid-column: 1;
		grid-row: 1;
		gap: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc {
		width: 54px;
		height: 54px;
		flex-basis: 54px;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveBadge,
	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfo,
	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art,
	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeGroup {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now {
		grid-column: 2;
		grid-row: 1;
		text-align: left;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shRadioBar__visualizer {
		width: 100%;
		margin-left: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__transport {
		grid-column: 3;
		grid-row: 1;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play {
		width: 50px;
		height: 46px;
		padding: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play span {
		display: none;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats {
		grid-column: 1 / -1;
		grid-row: 2;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: 1fr;
		border-top: 1px solid rgba(36, 200, 255, .12);
		border-left: 0;
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div {
		flex-direction: row;
		padding: 5px 8px;
		border-top: 0;
		border-left: 1px solid rgba(36, 200, 255, .10);
	}

	.shAppHome:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats > div:first-child {
		border-left: 0;
	}
}


/* Alpha 0.5.0.14 — portal music modules and releases catalogue */
.shAppRadioGrid{grid-template-columns:repeat(2,minmax(0,1fr));}
.shPortalModule{min-width:0;display:flex;flex-direction:column;}
.shPortalModule__list{display:grid;gap:9px;}
.shPortalMiniItem{display:flex;align-items:center;gap:11px;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(0,0,0,.2);color:inherit;text-decoration:none;transition:.18s ease;}
.shPortalMiniItem:hover{transform:translateY(-1px);border-color:rgba(54,214,226,.4);background:rgba(54,214,226,.06);}
.shPortalMiniItem__art{width:46px;height:46px;flex:0 0 46px;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.06);color:var(--sh-blue);}
.shPortalMiniItem__art img{width:100%;height:100%;object-fit:cover;}
.shPortalMiniItem__copy{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px;}
.shPortalMiniItem__copy strong,.shPortalMiniItem__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.shPortalMiniItem__copy small{opacity:.65;}
.shPortalMiniItem__meta,.shPortalMiniItem__action{flex:0 0 auto;opacity:.62;font-size:12px;}
.shPortalModule__empty{padding:22px 14px;border:1px dashed rgba(255,255,255,.12);border-radius:10px;text-align:center;opacity:.68;}
.shPortalModule__footer{margin-top:auto;padding-top:15px;color:var(--sh-blue);font-weight:700;text-decoration:none;}
.shBestTrack{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;align-items:center;}
.shBestTrack__art{width:100px;height:100px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:30px;color:var(--sh-orange);}
.shBestTrack__art img{width:100%;height:100%;object-fit:cover;}
.shBestTrack__copy{min-width:0;display:flex;flex-direction:column;gap:4px;}.shBestTrack__copy span{color:var(--sh-orange);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.shBestTrack__copy strong{font-size:20px}.shBestTrack__copy small{opacity:.68}
.shBestTrack__button{grid-column:1/-1;text-align:center;padding:11px 14px;border-radius:9px;background:var(--sh-orange);color:#130d08;text-decoration:none;font-weight:900;}
.shReleasesPage{max-width:1240px;margin:0 auto;padding:34px 20px 70px;}.shReleasesPage__header{padding:28px 0}.shReleasesPage__eyebrow{color:var(--sh-blue,#34d6e2);font-weight:800;text-transform:uppercase;letter-spacing:.12em}.shReleasesPage__header h1{margin:8px 0;font-size:38px}.shReleasesPage__header p{max-width:720px;opacity:.7;font-size:16px}
.shReleaseGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.shReleaseCard{overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(10,16,24,.9)}.shReleaseCard--featured{border-color:rgba(255,143,42,.55)}.shReleaseCard__art{position:relative;aspect-ratio:1/1;display:grid;place-items:center;background:rgba(255,255,255,.05);font-size:48px}.shReleaseCard__art img{width:100%;height:100%;object-fit:cover}.shReleaseCard__art>span{position:absolute;left:12px;top:12px;padding:6px 9px;border-radius:999px;background:var(--sh-orange,#ff8f2a);color:#160d06;font-size:11px;font-weight:900;text-transform:uppercase}.shReleaseCard__body{padding:17px}.shReleaseCard__body>small{color:var(--sh-blue,#34d6e2);font-weight:700}.shReleaseCard__body h2{margin:4px 0 9px}.shReleaseCard__body p{opacity:.7}.shReleaseCard__download{display:block;padding:11px;text-align:center;border-radius:8px;background:var(--sh-orange,#ff8f2a);color:#160d06;text-decoration:none;font-weight:900}.shReleaseCard__socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.shReleaseCard__socials a{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.07);color:inherit}.shReleasesPage__empty{text-align:center;padding:70px 20px;opacity:.72}.shReleasesPage__empty>i{font-size:44px}
@media(max-width:900px){.shAppRadioGrid,.shReleaseGrid{grid-template-columns:1fr}.shBestTrack{grid-template-columns:82px minmax(0,1fr)}.shBestTrack__art{width:82px;height:82px}}

/* SoundCloud release players — Alpha 0.5.0.16 */
.shSoundCloudPlayer {
	margin: 14px 0 4px;
	border-radius: 10px;
	overflow: hidden;
	background: rgba(0,0,0,.28);
	border: 1px solid rgba(255,255,255,.08);
}
.shSoundCloudPlayer iframe { display:block; width:100%; border:0; }
.shPortalReleaseItem + .shPortalReleaseItem { margin-top: 10px; }
.shSoundCloudPlayer--portal { margin: 6px 0 0; }
.shSoundCloudPlayer--best { grid-column: 1 / -1; width:100%; margin-top: 12px; }

/* Alpha 0.5.0.21: expanded classic SoundCloud players */
.shSoundCloudPlayer {
	width: 100%;
	margin-top: 12px;
	overflow: hidden;
	border-radius: 8px;
	background: #f5f5f5;
}
.shSoundCloudPlayer iframe {
	display: block;
	width: 100%;
	height: 166px;
	min-height: 166px;
	border: 0;
}
@media (max-width: 640px) {
	.shSoundCloudPlayer iframe {
		height: 166px;
		min-height: 166px;
	}
}


/* Alpha 0.5.0.22: release social image icons */
.shReleaseCard__socials,
.shPortalReleaseItem__socials,
.shBestTrack__socials {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.shPortalReleaseItem__socials { margin-top: 10px; padding: 0 4px; }
.shBestTrack__socials { grid-column: 1 / -1; margin-top: 4px; }
.shSocialIcon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(8, 12, 22, .78);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
    transform: translateY(0) scale(1);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.shSocialIcon img {
    width: 24px;
    height: 24px;
    display: block;
    object-fit: contain;
}
.shSocialIcon--small { width: 34px; height: 34px; }
.shSocialIcon--small img { width: 21px; height: 21px; }
.shSocialIcon:hover,
.shSocialIcon:focus-visible {
    transform: translateY(-3px) scale(1.08);
    border-color: rgba(255, 122, 24, .8);
    background: rgba(22, 18, 28, .95);
    box-shadow: 0 8px 22px rgba(255, 92, 0, .34), 0 0 16px rgba(255, 122, 24, .34);
    outline: none;
}
@media (prefers-reduced-motion: reduce) {
    .shSocialIcon { transition: none; }
    .shSocialIcon:hover, .shSocialIcon:focus-visible { transform: none; }
}

/* ================================================================
   Sonic Radio Suite 0.5.2.1 — Full-page orange heading and type pass
   ================================================================ */
.shAppPanel__eyebrow,
.shNativeChat .shAppPanel__eyebrow,
.shDjSchedule .shAppPanel__eyebrow,
.shLatestTopics .shAppPanel__eyebrow {
	color: var(--sh-orange, #ff6410);
	text-shadow: 0 0 10px rgba(255, 100, 16, .42);
}

.shAppPanel__title,
.shNativeChat__title,
.shDjSchedule__title,
.shLatestTopics__title {
	color: var(--sh-orange, #ff6410);
	font-size: clamp(21px, 1.75vw, 28px);
	line-height: 1.08;
	letter-spacing: .015em;
	text-shadow:
		0 0 8px rgba(255, 100, 16, .72),
		0 0 22px rgba(255, 100, 16, .30);
}

/* Primary text inside portal cards */
.shRecentTrack strong,
.shPortalMiniItem__copy strong,
.shLatestTopic__copy strong,
.shDjCard__copy strong,
.shOnAirDj__copy strong {
	font-size: 14px;
	line-height: 1.25;
	font-weight: 900;
}

.shRecentTrack small,
.shPortalMiniItem__copy small,
.shLatestTopic__copy small,
.shDjCard__copy span,
.shDjCard__copy small,
.shOnAirDj__copy span,
.shOnAirDj__copy small {
	font-size: 10px;
	line-height: 1.35;
}

.shRecentTrack time,
.shLatestTopic time,
.shDjCard__time,
.shPortalMiniItem__meta {
	color: var(--sh-orange, #ff6410);
	font-size: 10px;
	font-weight: 900;
	text-shadow: 0 0 8px rgba(255, 100, 16, .25);
}

.shPortalMiniItem__copy strong {
	white-space: normal;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.shBestTrack__copy > span {
	color: var(--sh-orange, #ff6410);
	text-shadow: 0 0 8px rgba(255, 100, 16, .30);
}

.shBestTrack__copy > strong {
	font-size: clamp(20px, 1.5vw, 24px);
	line-height: 1.2;
}

.shNowPlaying__copy > strong {
	font-size: clamp(25px, 2.3vw, 34px);
	line-height: 1.08;
}

.shNowPlaying__copy > span {
	font-size: 14px;
	font-weight: 800;
}

.shNativeChat__messages strong,
.shNativeChat__messages b {
	font-size: 14px;
}

/* Carry the orange identity into section actions and card icons. */
.shLatestTopics__link,
.shDjSchedule__fullLink,
.shDjSchedule__timezone,
.shPortalModule__footer {
	color: var(--sh-orange, #ff6410) !important;
}

.shPortalMiniItem__art,
.shLatestTopic__icon {
	border-color: rgba(255, 100, 16, .34);
	color: var(--sh-orange, #ff6410);
	box-shadow: inset 0 0 16px rgba(255, 100, 16, .06);
}

@media screen and (max-width: 620px) {
	.shAppPanel__title,
	.shNativeChat__title,
	.shDjSchedule__title,
	.shLatestTopics__title {
		font-size: 21px;
	}

	.shRecentTrack strong,
	.shPortalMiniItem__copy strong,
	.shLatestTopic__copy strong,
	.shDjCard__copy strong,
	.shOnAirDj__copy strong {
		font-size: 13px;
	}
}


/* ================================================================
   Sonic Radio Suite 0.5.2.2 — Bright white portal content text
   ================================================================ */
/* Primary card and feature text */
.shRecentTrack strong,
.shPortalMiniItem__copy strong,
.shLatestTopic__copy strong,
.shDjCard__copy strong,
.shOnAirDj__copy strong,
.shBestTrack__copy > strong,
.shNowPlaying__copy > strong,
.shNativeChat__messages strong,
.shNativeChat__messages b {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.72);
}

/* Secondary card text that was previously muted grey */
.shRecentTrack small,
.shPortalMiniItem__copy small,
.shLatestTopic__copy small,
.shDjCard__copy span,
.shDjCard__copy small,
.shOnAirDj__copy span,
.shOnAirDj__copy small,
.shBestTrack__copy > small,
.shNowPlaying__copy > span,
.shPortalMiniItem__action,
.shNativeChat__messages,
.shNativeChat__messages span,
.shNativeChat__messages small {
    color: #fff !important;
    opacity: 1 !important;
}

/* Keep orange information accents while ensuring adjacent values stay white. */
.shPortalMiniItem__meta,
.shRecentTrack time,
.shLatestTopic time,
.shDjCard__time {
    opacity: 1 !important;
}

.shNowPlaying__stat strong,
.shNowPlaying__stat span,
.shNowPlaying__stat small,
.shBestTrack__copy,
.shPortalMiniItem__copy,
.shLatestTopic__copy,
.shDjCard__copy,
.shOnAirDj__copy {
    color: #fff;
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.13 Broadcast Row
   ========================================================= */
.shAppRadioGrid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.shAppPanel--nowPlaying,
.shAppPanel--upNext {
	grid-column: span 1;
	min-height: 0;
}

.shAppPanel--upNext {
	border-color: color-mix(in srgb, var(--sh-orange) 42%, transparent);
	background:
		radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--sh-orange) 16%, transparent), transparent 34%),
		radial-gradient(circle at 12% 80%, color-mix(in srgb, var(--sh-blue) 12%, transparent), transparent 32%),
		linear-gradient(135deg, rgba(20, 10, 9, .97), rgba(8, 18, 31, .97) 58%, rgba(3, 11, 23, .98));
	box-shadow: 0 20px 48px rgba(0, 0, 0, .46), 0 0 27px color-mix(in srgb, var(--sh-orange) 12%, transparent);
}

.shAppPanel--nowPlaying .shNowPlaying--premium {
	grid-template-columns: minmax(112px, 145px) minmax(0, 1fr);
	gap: 17px;
}

.shAppPanel--nowPlaying .shNowPlaying--premium .shNowPlaying__copy > strong {
	font-size: clamp(18px, 1.8vw, 25px);
}

.shAppPanel--nowPlaying .shNowPlaying__metrics > div {
	padding-inline: 9px;
}

.shUpNext {
	display: grid;
	grid-template-columns: 116px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
	margin-top: 14px;
	padding: 14px;
	border: 1px solid rgba(255, 112, 30, .18);
	border-radius: 11px;
	background: rgba(3, 11, 23, .68);
}

.shUpNext__avatar {
	width: 116px;
	height: 116px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--sh-orange) 54%, var(--sh-blue));
	border-radius: 13px;
	color: var(--sh-orange);
	font-size: 34px;
	background: linear-gradient(145deg, rgba(255, 100, 16, .17), rgba(36, 200, 255, .11));
	box-shadow: -4px 0 18px rgba(36, 200, 255, .13), 4px 0 18px rgba(255, 100, 16, .20);
}

.shUpNext__avatar img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}

.shUpNext__copy { min-width: 0; }
.shUpNext__copy strong,
.shUpNext__copy span,
.shUpNext__copy small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
}
.shUpNext__status {
	margin-bottom: 7px;
	color: #ffad72;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}
.shUpNext__status i { margin-right: 5px; }
.shUpNext__copy strong {
	color: #fff;
	font-size: clamp(18px, 1.8vw, 25px);
	line-height: 1.1;
}
.shUpNext__dj {
	margin-top: 7px;
	color: #75def8;
	font-size: 12px;
}
.shUpNext__copy small {
	margin-top: 9px;
	color: #a7b9c8;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.shUpNext__time {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid rgba(255, 113, 31, .13);
}
.shUpNext__time > i { color: var(--sh-orange); font-size: 17px; }
.shUpNext__time span {
	display: block;
	color: #92a7b8;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.shUpNext__time strong { display: block; margin-top: 2px; color: #fff; font-size: 12px; }
.shUpNext--fallback { min-height: 174px; }
.shUpNext--fallback .shUpNext__status i { color: #36f0bb; font-size: 7px; }

@media screen and (max-width: 980px) {
	.shAppPanel--nowPlaying,
	.shAppPanel--upNext { grid-column: span 1; }
	.shAppPanel--nowPlaying .shNowPlaying--premium { grid-template-columns: 105px minmax(0, 1fr); }
	.shAppPanel--nowPlaying .shNowPlaying__metrics { grid-template-columns: 1fr; gap: 5px; }
	.shAppPanel--nowPlaying .shNowPlaying__metrics > div { padding: 5px 0; border-left: 0; }
}

@media screen and (max-width: 760px) {
	.shAppRadioGrid { grid-template-columns: 1fr; }
	.shAppPanel--nowPlaying,
	.shAppPanel--upNext { grid-column: 1 / -1; }
	.shAppPanel--nowPlaying .shNowPlaying__metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
	.shAppPanel--nowPlaying .shNowPlaying__metrics > div { padding: 0 7px; border-left: 1px solid rgba(36, 200, 255, .12); }
	.shAppPanel--nowPlaying .shNowPlaying__metrics > div:first-child { border-left: 0; }
}

@media screen and (max-width: 430px) {
	.shUpNext { grid-template-columns: 88px minmax(0, 1fr); gap: 13px; }
	.shUpNext__avatar { width: 88px; height: 88px; }
	.shAppPanel--nowPlaying .shNowPlaying__metrics { grid-template-columns: 1fr; }
	.shAppPanel--nowPlaying .shNowPlaying__metrics > div { padding: 7px 0; border-top: 1px solid rgba(36, 200, 255, .10); border-left: 0; }
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.14 Centred Now Playing
   ========================================================= */
.shAppPanel--nowPlaying .shNowPlaying--premium {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	align-content: start;
	gap: 12px;
	padding: 14px 16px 0;
	text-align: center;
}

.shAppPanel--nowPlaying .shNowPlaying__art {
	width: clamp(132px, 34%, 168px);
	height: auto;
	aspect-ratio: 1 / 1;
	margin-inline: auto;
	justify-self: center;
}

.shAppPanel--nowPlaying .shNowPlaying__art img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.shAppPanel--nowPlaying .shNowPlaying__copy {
	width: 100%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.shAppPanel--nowPlaying .shNowPlaying__live {
	justify-content: center;
}

.shAppPanel--nowPlaying .shNowPlaying--premium .shNowPlaying__copy > strong,
.shAppPanel--nowPlaying .shNowPlaying--premium .shNowPlaying__copy > span,
.shAppPanel--nowPlaying .shNowPlaying--premium .shNowPlaying__copy > em {
	width: 100%;
	max-width: 100%;
	text-align: center;
}

.shAppPanel--nowPlaying .shNowPlaying__wave {
	justify-content: center;
	margin-inline: auto;
}

.shAppPanel--nowPlaying .shNowPlaying__metrics {
	width: calc(100% + 32px);
	margin: 2px -16px 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shAppPanel--nowPlaying .shNowPlaying__metrics > div {
	justify-content: center;
	text-align: center;
	padding: 8px 7px;
}

@media screen and (max-width: 980px) {
	.shAppPanel--nowPlaying .shNowPlaying--premium {
		grid-template-columns: minmax(0, 1fr);
	}

	.shAppPanel--nowPlaying .shNowPlaying__metrics {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0;
	}

	.shAppPanel--nowPlaying .shNowPlaying__metrics > div {
		padding: 7px 5px;
		border-left: 1px solid rgba(36, 200, 255, .12);
	}

	.shAppPanel--nowPlaying .shNowPlaying__metrics > div:first-child {
		border-left: 0;
	}
}

@media screen and (max-width: 430px) {
	.shAppPanel--nowPlaying .shNowPlaying--premium {
		padding-inline: 11px;
	}

	.shAppPanel--nowPlaying .shNowPlaying__art {
		width: min(150px, 48vw);
	}

	.shAppPanel--nowPlaying .shNowPlaying__metrics {
		width: calc(100% + 22px);
		margin-inline: -11px;
		grid-template-columns: 1fr;
	}

	.shAppPanel--nowPlaying .shNowPlaying__metrics > div {
		padding: 7px 0;
		border-top: 1px solid rgba(36, 200, 255, .10);
		border-left: 0;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.15 Two-show Up Next panel
   ========================================================= */
.shUpNextList {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.shUpNext--compact {
	grid-template-columns: 82px minmax(0, 1fr);
	gap: 13px;
	margin-top: 0;
	padding: 10px 12px;
	min-height: 0;
}

.shUpNext--compact .shUpNext__avatar {
	width: 82px;
	height: 82px;
	border-radius: 11px;
	font-size: 27px;
}

.shUpNext--compact .shUpNext__status {
	margin-bottom: 4px;
	font-size: 8px;
}

.shUpNext--compact .shUpNext__copy strong {
	font-size: clamp(15px, 1.35vw, 19px);
	white-space: nowrap;
}

.shUpNext--compact .shUpNext__dj {
	margin-top: 4px;
	font-size: 10px;
}

.shUpNext--compact .shUpNext__copy small {
	margin-top: 5px;
	font-size: 8px;
}

.shUpNext__broadcast {
	margin-top: 6px;
	color: #d7e2ea;
	font-size: 9px;
	font-weight: 800;
}

.shUpNext__broadcast i {
	margin-right: 5px;
	color: var(--sh-orange);
}

.shUpNext--compact.shUpNext--fallback {
	min-height: 0;
}

@media screen and (max-width: 980px) {
	.shUpNext--compact {
		grid-template-columns: 70px minmax(0, 1fr);
		gap: 10px;
		padding: 9px;
	}

	.shUpNext--compact .shUpNext__avatar {
		width: 70px;
		height: 70px;
	}
}

@media screen and (max-width: 760px) {
	.shUpNextList {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
	}
}

@media screen and (max-width: 560px) {
	.shUpNextList {
		grid-template-columns: 1fr;
	}

	.shUpNext--compact {
		grid-template-columns: 76px minmax(0, 1fr);
	}

	.shUpNext--compact .shUpNext__avatar {
		width: 76px;
		height: 76px;
	}
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.16 Full-height Up Next cards
   ========================================================= */
.shAppPanel--upNext {
	display: flex;
	flex-direction: column;
}

.shAppPanel--upNext .shUpNextList {
	flex: 1 1 auto;
	min-height: 0;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	align-content: stretch;
	gap: 12px;
}

.shAppPanel--upNext .shUpNext--compact {
	height: 100%;
	box-sizing: border-box;
	grid-template-columns: 104px minmax(0, 1fr);
	align-items: center;
	align-content: center;
	gap: 16px;
	padding: 15px 17px;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__avatar {
	width: 104px;
	height: 104px;
	border-radius: 13px;
	font-size: 32px;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__copy {
	display: flex;
	min-height: 0;
	flex-direction: column;
	justify-content: center;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__status {
	margin-bottom: 6px;
	font-size: 9px;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__copy strong {
	font-size: clamp(17px, 1.45vw, 21px);
	line-height: 1.12;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__dj {
	margin-top: 6px;
	font-size: 11px;
}

.shAppPanel--upNext .shUpNext--compact .shUpNext__copy small {
	margin-top: 7px;
	font-size: 9px;
}

.shAppPanel--upNext .shUpNext__broadcast {
	margin-top: 9px;
	font-size: 10px;
}

@media screen and (max-width: 980px) {
	.shAppPanel--upNext .shUpNext--compact {
		grid-template-columns: 86px minmax(0, 1fr);
		gap: 12px;
		padding: 12px;
	}

	.shAppPanel--upNext .shUpNext--compact .shUpNext__avatar {
		width: 86px;
		height: 86px;
	}
}

@media screen and (max-width: 760px) {
	.shAppPanel--upNext .shUpNextList {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
	}

	.shAppPanel--upNext .shUpNext--compact {
		height: auto;
		min-height: 142px;
	}
}

@media screen and (max-width: 560px) {
	.shAppPanel--upNext .shUpNextList {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(2, auto);
	}

	.shAppPanel--upNext .shUpNext--compact {
		grid-template-columns: 82px minmax(0, 1fr);
		min-height: 0;
	}

	.shAppPanel--upNext .shUpNext--compact .shUpNext__avatar {
		width: 82px;
		height: 82px;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.18 Dynamic artwork backdrop
   ========================================================= */
.shAppPanel--nowPlaying .shNowPlaying--premium {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: rgba(3, 12, 24, .82);
}

.shAppPanel--nowPlaying .shNowPlaying--premium::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(2, 10, 20, .35), rgba(2, 10, 20, .68)),
		linear-gradient(90deg, rgba(0, 55, 90, .17), rgba(130, 35, 5, .13));
}

.shAppPanel--nowPlaying .shNowPlaying__backdrop {
	position: absolute;
	inset: -18px;
	z-index: 0;
	width: calc(100% + 36px);
	height: calc(100% + 36px);
	object-fit: cover;
	object-position: center;
	opacity: .50;
	filter: blur(5px) saturate(.80) brightness(.80);
	transform: scale(1.06);
	pointer-events: none;
	transition: opacity .28s ease;
}

.shAppPanel--nowPlaying .shNowPlaying__backdrop.is-changing {
	opacity: .07;
}

.shAppPanel--nowPlaying .shNowPlaying--premium > :not(.shNowPlaying__backdrop) {
	position: relative;
	z-index: 2;
}

.shAppPanel--nowPlaying .shNowPlaying__art {
	box-shadow:
		0 12px 28px rgba(0, 0, 0, .42),
		0 0 22px rgba(36, 200, 255, .16),
		0 0 26px rgba(255, 100, 16, .11);
}

.shAppPanel--nowPlaying .shNowPlaying__copy > strong,
.shAppPanel--nowPlaying .shNowPlaying__copy > span,
.shAppPanel--nowPlaying .shNowPlaying__copy > em {
	text-shadow: 0 2px 10px rgba(0, 0, 0, .92);
}

.shAppPanel--nowPlaying .shNowPlaying__metrics {
	position: relative;
	z-index: 3;
	background: rgba(2, 10, 21, .72);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

@media (prefers-reduced-motion: reduce) {
	.shAppPanel--nowPlaying .shNowPlaying__backdrop {
		transition: none;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.5.6.19 Portal title marquee
   ========================================================= */
.shAppPanel--nowPlaying .shNowPlaying__titleViewport {
	--sh-now-title-gap: 48px;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	white-space: nowrap;
	text-align: center;
}

.shAppPanel--nowPlaying .shNowPlaying__titleViewport.is-scrolling {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack > strong {
	flex: 0 0 auto;
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #fff;
	font-size: 18px;
	font-style: normal;
	font-weight: 950;
	line-height: 1.2;
	text-align: center;
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack > strong[aria-hidden="true"] {
	display: none;
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling {
	width: max-content;
	justify-content: flex-start;
	gap: var(--sh-now-title-gap);
	animation: shNowPlayingTitleMarquee 13s linear infinite;
	will-change: transform;
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling > strong {
	max-width: none;
	overflow: visible;
	text-overflow: clip;
}

.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling > strong[aria-hidden="true"] {
	display: block;
}

.shAppPanel--nowPlaying .shNowPlaying__titleViewport:hover .shNowPlaying__titleTrack.is-scrolling {
	animation-play-state: paused;
}

@keyframes shNowPlayingTitleMarquee {
	0%, 8% { transform: translate3d(0, 0, 0); }
	92%, 100% { transform: translate3d(calc(-50% - (var(--sh-now-title-gap) / 2)), 0, 0); }
}

@media screen and (max-width: 520px) {
	.shAppPanel--nowPlaying .shNowPlaying__titleViewport {
		--sh-now-title-gap: 34px;
	}

	.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling {
		animation-duration: 11s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling {
		width: 100%;
		animation: none;
	}

	.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling > strong {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.shAppPanel--nowPlaying .shNowPlaying__titleTrack.is-scrolling > strong[aria-hidden="true"] {
		display: none;
	}
}


/* Sonic portal compact IPS desktop header. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_header > header,
	body.shIpsCompactHeader #ipsLayout_header .shIpsCompactHeader__source {
		display: none !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainNav,
	body.shIpsCompactHeader #ipsLayout_header nav {
		background: linear-gradient(90deg, rgba(3, 12, 24, .98), rgba(4, 18, 33, .98) 62%, rgba(20, 8, 8, .96)) !important;
		border-bottom: 1px solid rgba(255, 108, 22, .38);
		box-shadow: 0 10px 28px rgba(0, 0, 0, .28);
	}

	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container,
	body.shIpsCompactHeader .shIpsCompactHeader__target {
		display: flex !important;
		align-items: center;
		gap: 18px;
		min-height: 62px;
		height: 62px;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] {
		display: flex !important;
		align-items: stretch;
		flex: 1 1 auto;
		min-width: 0;
		height: 62px;
		margin: 0 !important;
		overflow: hidden;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li {
		flex: 0 0 auto;
		height: 62px;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		display: flex;
		align-items: center;
		height: 62px;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__search {
		display: none !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		display: flex !important;
		align-items: center;
		gap: 3px;
		margin: 0 0 0 auto !important;
		padding: 0 !important;
		float: none !important;
		white-space: nowrap;
		flex: 0 0 auto;
		min-width: max-content;
		height: 62px;
		position: relative;
		z-index: 50;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		float: none !important;
		margin: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:not(#cUserLink) > a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 40px;
		padding: 0 10px;
		color: rgba(255, 255, 255, .92) !important;
		border-radius: 8px;
		transition: background .18s ease, color .18s ease, transform .18s ease;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:not(#cUserLink) > a:hover {
		background: rgba(42, 197, 255, .1);
		color: #fff !important;
		transform: translateY(-1px);
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .elUserNav_sep {
		width: 1px;
		height: 28px;
		margin: 0 4px !important;
		background: rgba(255, 255, 255, .14);
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .ipsUserPhoto {
		margin-left: 5px;
	}


	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink {
		display: flex !important;
		align-items: center;
		gap: 7px;
		height: 62px;
		padding: 0 6px;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > .ipsUserPhoto {
		display: block;
		flex: 0 0 34px;
		width: 34px !important;
		height: 34px !important;
		min-height: 0;
		padding: 0;
		margin: 0 !important;
		border-radius: 50%;
		overflow: hidden;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > .ipsUserPhoto img {
		display: block;
		width: 34px !important;
		height: 34px !important;
		object-fit: cover;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		display: flex;
		align-items: center;
		min-height: 40px;
		padding: 0 5px 0 0;
		color: rgba(255, 255, 255, .94) !important;
		white-space: nowrap;
	}

	body.shIpsCompactHeader .ipsBreadcrumb_top {
		display: none !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .ipsMenu {
		z-index: 6000;
	}
}


/* Alpha 0.5.6.23: compact-header contrast and residual breadcrumb cleanup. */
@media (min-width: 981px) {
	body.shIpsCompactHeader.shPortalBreadcrumbRemoved #ipsLayout_contentWrapper,
	body.shIpsCompactHeader.shPortalBreadcrumbRemoved #ipsLayout_contentArea,
	body.shIpsCompactHeader.shPortalBreadcrumbRemoved #ipsLayout_body {
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: 0 !important;
		background-color: transparent !important;
	}

	body.shIpsCompactHeader .ipsBreadcrumb,
	body.shIpsCompactHeader .ipsBreadcrumb_top {
		display: none !important;
		margin: 0 !important;
		padding: 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		border: 0 !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a,
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a:visited {
		color: rgba(255, 255, 255, .82) !important;
		text-shadow: 0 1px 2px rgba(0, 0, 0, .65);
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a:hover,
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li.ipsNavBar_active > a {
		color: #fff !important;
	}

	body.shIpsCompactHeader .ipsNavBar_secondary {
		background: linear-gradient(90deg, rgba(3, 13, 25, .99), rgba(4, 18, 32, .99) 68%, rgba(15, 8, 10, .98)) !important;
		border-top: 1px solid rgba(255, 255, 255, .06);
		border-bottom: 1px solid rgba(255, 108, 22, .28);
		box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
	}

	body.shIpsCompactHeader .ipsNavBar_secondary > li > a,
	body.shIpsCompactHeader .ipsNavBar_secondary > li > a:visited {
		color: rgba(211, 224, 237, .76) !important;
		opacity: 1 !important;
		text-shadow: 0 1px 2px rgba(0, 0, 0, .8);
	}

	body.shIpsCompactHeader .ipsNavBar_secondary > li > a:hover,
	body.shIpsCompactHeader .ipsNavBar_secondary > li.ipsNavBar_active > a {
		color: #fff !important;
		background: rgba(42, 197, 255, .08) !important;
	}

	body.shIpsCompactHeader .ipsNavBar_secondary .ipsNavBar_active__identifier {
		background: #ff6c16 !important;
	}
}

/* Alpha 0.5.6.24: collapse the empty IPS portal shell and skin desktop menus. */
@media (min-width: 981px) {
	/* The Sonic portal is the page surface; remove the stock IPS light shell around it. */
	body.shIpsCompactHeader #ipsLayout_body,
	body.shIpsCompactHeader #ipsLayout_contentArea,
	body.shIpsCompactHeader #ipsLayout_contentWrapper,
	body.shIpsCompactHeader #ipsLayout_mainArea {
		margin-top: 0 !important;
		padding-top: 0 !important;
		border-top: 0 !important;
		min-height: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainArea > .cWidgetContainer[data-widgetarea="header"] {
		display: none !important;
		margin: 0 !important;
		padding: 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		border: 0 !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainArea > .shAppHome {
		margin-top: 0 !important;
	}

	/* Dark Sonic treatment for native IPS fly-outs and dropdown menus. */
	body.shIpsCompactHeader .ipsMenu {
		background: linear-gradient(145deg, rgba(3, 13, 25, .985), rgba(5, 20, 35, .985) 67%, rgba(24, 9, 8, .985)) !important;
		border: 1px solid rgba(255, 105, 18, .58) !important;
		border-radius: 11px !important;
		box-shadow: 0 18px 42px rgba(0, 0, 0, .62), 0 0 22px rgba(255, 96, 12, .1) !important;
		color: rgba(232, 241, 249, .92) !important;
		overflow: hidden;
		backdrop-filter: blur(14px) saturate(1.12);
		-webkit-backdrop-filter: blur(14px) saturate(1.12);
	}

	body.shIpsCompactHeader .ipsMenu::before,
	body.shIpsCompactHeader .ipsMenu::after {
		border-bottom-color: rgba(255, 105, 18, .58) !important;
	}

	body.shIpsCompactHeader .ipsMenu_title,
	body.shIpsCompactHeader .ipsMenu_headerBar {
		background: rgba(255, 100, 16, .08) !important;
		border-bottom: 1px solid rgba(255, 112, 27, .22) !important;
		color: #ff741f !important;
		font-weight: 800;
		letter-spacing: .055em;
		text-transform: uppercase;
	}

	body.shIpsCompactHeader .ipsMenu:not(.ipsMenu_wide) .ipsMenu_title {
		text-align: center;
		padding: 13px 16px !important;
	}

	body.shIpsCompactHeader .ipsMenu:not(.ipsMenu_wide) .ipsMenu_item > a {
		display: flex !important;
		align-items: center;
		justify-content: center;
		min-height: 43px;
		padding: 11px 18px !important;
		color: rgba(226, 237, 247, .9) !important;
		text-align: center !important;
		line-height: 1.25;
		border-radius: 7px;
		transition: background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
	}

	body.shIpsCompactHeader .ipsMenu:not(.ipsMenu_wide) .ipsMenu_item > a:hover,
	body.shIpsCompactHeader .ipsMenu:not(.ipsMenu_wide) .ipsMenu_itemChecked > a,
	body.shIpsCompactHeader .ipsMenu:not(.ipsMenu_wide) .ipsMenu_item.ipsMenu_itemChecked > a {
		background: linear-gradient(90deg, rgba(28, 192, 255, .1), rgba(255, 100, 16, .13)) !important;
		color: #fff !important;
		box-shadow: inset 3px 0 0 #24c8ff, inset -3px 0 0 #ff6410;
		transform: translateY(-1px);
	}

	body.shIpsCompactHeader .ipsMenu_sep,
	body.shIpsCompactHeader .ipsMenu_sep hr {
		border-color: rgba(255, 255, 255, .1) !important;
	}

	body.shIpsCompactHeader .ipsMenu .ipsButton_primary,
	body.shIpsCompactHeader .ipsMenu .ipsButton_important {
		background: linear-gradient(135deg, #ff741f, #e44808) !important;
		border-color: rgba(255, 146, 66, .72) !important;
		color: #fff !important;
		box-shadow: 0 8px 20px rgba(228, 72, 8, .28), 0 0 14px rgba(36, 200, 255, .1);
		border-radius: 7px;
	}

	body.shIpsCompactHeader .ipsMenu .ipsButton_primary:hover,
	body.shIpsCompactHeader .ipsMenu .ipsButton_important:hover {
		filter: brightness(1.1);
		transform: translateY(-1px);
	}

	/* Wide notification/message panels retain useful left-aligned content. */
	body.shIpsCompactHeader .ipsMenu_wide .ipsMenu_innerContent,
	body.shIpsCompactHeader .ipsMenu_wide .ipsDataItem,
	body.shIpsCompactHeader .ipsMenu_wide p,
	body.shIpsCompactHeader .ipsMenu_wide h3,
	body.shIpsCompactHeader .ipsMenu_wide h4 {
		color: rgba(230, 239, 247, .92) !important;
		text-align: left;
	}

	body.shIpsCompactHeader .ipsMenu_footerBar {
		background: rgba(0, 0, 0, .2) !important;
		border-top: 1px solid rgba(255, 255, 255, .08) !important;
	}

	body.shIpsCompactHeader .ipsMenu_footerBar a {
		color: #24c8ff !important;
	}
}


/* Alpha 0.5.6.25: hard portal-shell reset using stable IPS page attributes. */
body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] .ipsBreadcrumb_top {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	border: 0 !important;
}

body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_body {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_contentArea,
body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_contentWrapper,
body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_mainArea {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	min-height: 0 !important;
}

body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_mainArea > .cWidgetContainer[data-widgetarea="header"] {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	border: 0 !important;
}

body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_mainArea > .shAppHome {
	margin-top: 0 !important;
	border-top: 0 !important;
}


/* Alpha 0.5.6.26: remove the stock IPS desktop-nav pseudo strip identified in DevTools. */
@media screen and (min-width: 981px) {
	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_header nav.ipsResponsive_showDesktop::after {
		content: none !important;
		display: none !important;
		clear: none !important;
		width: 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_header,
	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_header nav.ipsResponsive_showDesktop,
	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_header .ipsNavBar_primary,
	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] #ipsLayout_body {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		border-bottom: 0 !important;
	}
}


/* Alpha 0.5.6.27: integrate the useful player-status links into the desktop IPS navigation. */
.shHeaderPlayerLinks {
	display: none;
}

@media screen and (min-width: 981px) {
	body.shIpsCompactHeader .shHeaderPlayerLinks {
		display: flex;
		align-items: stretch;
		align-self: stretch;
		flex: 0 1 auto;
		min-width: 0;
		height: 62px;
		margin-left: auto;
		border-left: 1px solid rgba(36, 200, 255, .12);
		border-right: 1px solid rgba(255, 100, 16, .12);
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		display: flex;
		align-items: center;
		justify-content: center;
		min-width: 0;
		height: 62px;
		padding: 0 13px;
		border-left: 1px solid rgba(255, 255, 255, .055);
		box-sizing: border-box;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		flex-direction: column;
		gap: 1px;
		min-width: 154px;
		text-align: center;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand strong {
		color: #fff;
		font-size: 12px;
		font-weight: 900;
		letter-spacing: .045em;
		line-height: 1.1;
		text-transform: uppercase;
		white-space: nowrap;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand span {
		color: #58d8ff;
		font-size: 7px;
		font-weight: 800;
		letter-spacing: .035em;
		line-height: 1.1;
		text-transform: uppercase;
		white-space: nowrap;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link,
	body.shIpsCompactHeader .shHeaderPlayerLinks__link:visited {
		gap: 9px;
		color: rgba(238, 246, 252, .94) !important;
		text-decoration: none !important;
		transition: background .16s ease, box-shadow .16s ease, color .16s ease;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link:hover {
		background: linear-gradient(180deg, rgba(36, 200, 255, .1), rgba(255, 100, 16, .08));
		box-shadow: inset 0 -2px 0 #ff6410;
		color: #fff !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link > i {
		flex: 0 0 auto;
		color: #ff6b18;
		font-size: 19px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link > span {
		display: block;
		min-width: 0;
		line-height: 1.05;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link small,
	body.shIpsCompactHeader .shHeaderPlayerLinks__link strong {
		display: block;
		white-space: nowrap;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link small {
		margin-bottom: 3px;
		color: #8ca4b7;
		font-size: 7px;
		font-weight: 800;
		letter-spacing: .04em;
		text-transform: uppercase;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link strong {
		color: #fff;
		font-size: 10px;
		font-weight: 800;
	}

	/* The old full-width player status bar is intentionally gone. */
	body[data-pageapp="sonichardcore"][data-pagemodule="main"][data-pagecontroller="index"] .shPlayerStatusBar {
		display: none !important;
	}
}

@media screen and (min-width: 981px) and (max-width: 1240px) {
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		display: none;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		padding: 0 10px;
	}
}


/* Alpha 0.5.6.29: replace the compact-navigation text brand with the Sonic Hardcore logo. */
@media screen and (min-width: 981px) {
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand:visited {
		padding: 6px 13px;
		text-decoration: none !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand img {
		display: block;
		width: auto;
		height: auto;
		max-width: 142px;
		max-height: 42px;
		object-fit: contain;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand:hover img {
		filter: brightness(1.08);
	}
}


/* Alpha 0.5.6.30: enlarge the desktop navigation logo and rebalance the compact header. */
@media screen and (min-width: 1241px) {
	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container,
	body.shIpsCompactHeader .shIpsCompactHeader__target,
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"],
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li,
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink,
	body.shIpsCompactHeader .shHeaderPlayerLinks,
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		height: 82px !important;
		min-height: 82px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand:visited {
		min-width: 228px;
		padding: 5px 16px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand img {
		width: auto;
		height: auto;
		max-width: 214px;
		max-height: 70px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		gap: 10px;
		padding-right: 16px;
		padding-left: 16px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link > i {
		font-size: 22px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link small {
		font-size: 8px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link strong {
		font-size: 11px;
	}
}

@media screen and (min-width: 1241px) and (max-width: 1440px) {
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand:visited {
		min-width: 190px;
		padding-right: 10px;
		padding-left: 10px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand img {
		max-width: 180px;
		max-height: 62px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		padding-right: 11px;
		padding-left: 11px;
	}
}


/* Alpha 0.5.6.31: remove horizontal padding from the desktop navigation logo cell. */
@media screen and (min-width: 981px) {
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__brand:visited {
		flex: 0 0 auto;
		width: auto;
		min-width: 0 !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}
}

/* Alpha 0.6.0 — hero composition refinement */
@media (min-width: 801px) {
	.shAppHero__logo {
		transform: translateY(-34px);
	}

	.shAppHero__actions {
		bottom: 10px;
	}
}

@media (max-width: 800px) {
	.shAppHero__logo {
		transform: translateY(-12px);
	}

	.shAppHero__actions {
		bottom: 14px;
	}
}

/* Alpha 0.6.5 — reduce only the desktop hero logo top spacing by 30px. */
@media (min-width: 801px) {
	.shAppHero,
	.shAppHero__inner {
		min-height: 660px;
	}

	.shAppHero__inner {
		padding: 112px 30px 122px;
	}

	.shAppHero__logo {
		transform: none;
		margin-top: 40px;
		margin-bottom: 70px;
	}

	.shAppHero__actions {
		bottom: 22px;
	}
}

@media (max-width: 800px) {
	.shAppHero__logo {
		transform: none;
		margin-top: 42px;
		margin-bottom: 42px;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.6.2 Radio Chat artwork backdrop
   ========================================================= */
.shRadioChatOnly .shProPlayer {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: rgba(3, 12, 24, .82);
}

.shRadioChatOnly .shProPlayer__artworkBackdrop {
	position: absolute;
	inset: -18px;
	z-index: 0;
	width: calc(100% + 36px);
	height: calc(100% + 36px);
	object-fit: cover;
	object-position: center;
	opacity: .50;
	filter: blur(5px) saturate(.80) brightness(.80);
	transform: scale(1.06);
	pointer-events: none;
	transition: opacity .28s ease;
}

.shRadioChatOnly .shProPlayer__artworkBackdrop.is-changing {
	opacity: .07;
}

.shRadioChatOnly .shProPlayer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(2, 10, 20, .35), rgba(2, 10, 20, .68)),
		linear-gradient(90deg, rgba(0, 55, 90, .17), rgba(130, 35, 5, .13));
}

.shRadioChatOnly .shProPlayer::after {
	display: none;
}

.shRadioChatOnly .shProPlayer > :not(.shProPlayer__artworkBackdrop) {
	position: relative;
	z-index: 2;
}

.shRadioChatOnly .shProPlayer__nowPanel,
.shRadioChatOnly .shProPlayer__controls,
.shRadioChatOnly .shProPlayer__stats {
	text-shadow: 0 2px 10px rgba(0, 0, 0, .92);
}

.shRadioChatOnly .shProPlayer__stats {
	background: rgba(2, 10, 21, .72);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

@media (prefers-reduced-motion: reduce) {
	.shRadioChatOnly .shProPlayer__artworkBackdrop {
		transition: none;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.6.3 Radio Chat shell cleanup
   ========================================================= */

/* Keep the dedicated player artwork completely still. The metadata poll must
   not create a visible fade/sweep across the backdrop. */
.shRadioChatOnly .shProPlayer__artworkBackdrop,
.shRadioChatOnly .shProPlayer__artworkBackdrop.is-changing {
	opacity: .50 !important;
	transition: none !important;
	animation: none !important;
}

/* Carry the selected Sonic Hardcore wallpaper through the whole dedicated
   Radio & Chat page instead of allowing IPS' pale page/footer surfaces through. */
body.shRadioChatPage,
body.shRadioChatPage #ipsLayout_body,
body.shRadioChatPage #ipsLayout_contentArea,
body.shRadioChatPage #ipsLayout_contentWrapper,
body.shRadioChatPage #ipsLayout_mainArea,
body.shRadioChatPage #ipsLayout_footer,
body.shRadioChatPage .ipsLayout_container,
body.shRadioChatPage .ipsLayout_contentWrapper,
body.shRadioChatPage .ipsBox,
body.shRadioChatPage .ipsBox_alt {
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none;
}

body.shRadioChatPage #ipsLayout_footer {
	margin-top: 0;
	padding-top: 20px;
	padding-bottom: 24px;
	border-top: 1px solid rgba(36, 200, 255, .14);
	color: rgba(214, 229, 241, .72);
	background: rgba(2, 8, 17, .78) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

body.shRadioChatPage #ipsLayout_footer a,
body.shRadioChatPage #ipsLayout_footer p,
body.shRadioChatPage #ipsLayout_footer li,
body.shRadioChatPage #ipsLayout_footer span {
	color: rgba(214, 229, 241, .78) !important;
}

body.shRadioChatPage .shRadioChatOnly {
	padding-bottom: 18px;
	background:
		linear-gradient(180deg, rgba(2, 8, 17, .16), rgba(2, 8, 17, .40));
}

body.shRadioChatPage .shNativeChat,
body.shRadioChatPage .shRadioChatOnly__footer {
	background: rgba(2, 11, 22, .90);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* =========================================================
   Sonic Radio Suite — Alpha 0.6.4 Radio Chat sweep/footer fix
   ========================================================= */

/* The base player uses ::before for a moving shine sweep. On the dedicated
   Radio & Chat page this pseudo-element is the static readability overlay,
   so cancel the inherited movement completely. */
.shRadioChatOnly .shProPlayer::before {
	animation: none !important;
	transform: none !important;
}

/* The dedicated page already has its own Sonic Hardcore footer. Hide the
   default IPS footer links/copyright area on this page only. */
body.shRadioChatPage #ipsLayout_footer,
body.shRadioChatPage #elFooterLinks,
body.shRadioChatPage #elCopyright {
	display: none !important;
}

/* Alpha 0.7.1.5: compact desktop header width and account-menu stability. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_mainNav,
	body.shIpsCompactHeader #ipsLayout_header nav {
		position: relative;
		z-index: 4000;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container,
	body.shIpsCompactHeader .shIpsCompactHeader__target {
		width: calc(100% - 32px) !important;
		max-width: 1500px !important;
		gap: 10px !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] {
		overflow: visible !important;
		flex: 1 1 auto;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		position: relative !important;
		z-index: 9000 !important;
		gap: 1px !important;
		height: 62px;
		padding: 0 4px !important;
		background: linear-gradient(180deg, rgba(7, 27, 47, .98), rgba(3, 15, 28, .98)) !important;
		border: 1px solid rgba(42, 197, 255, .28) !important;
		border-radius: 9px !important;
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035), 0 7px 20px rgba(0, 0, 0, .24) !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		position: relative !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:not(#cUserLink) > a {
		padding-left: 9px !important;
		padding-right: 9px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink {
		padding-left: 4px !important;
		padding-right: 4px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink::after,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li[data-ipsmenu]::after {
		content: "";
		position: absolute;
		left: -4px;
		right: -4px;
		top: 100%;
		height: 16px;
		z-index: 8999;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .ipsMenu,
	body.shIpsCompactHeader #elUserLink_menu,
	body.shIpsCompactHeader #elCreateNew_menu,
	body.shIpsCompactHeader #elFullNotifications_menu,
	body.shIpsCompactHeader #elFullInbox_menu,
	body.shIpsCompactHeader #elFullReports_menu {
		z-index: 12000 !important;
		margin-top: 0 !important;
		pointer-events: auto !important;
	}

	body.shIpsCompactHeader #elUserLink_menu::before,
	body.shIpsCompactHeader #elCreateNew_menu::before,
	body.shIpsCompactHeader #elFullNotifications_menu::before,
	body.shIpsCompactHeader #elFullInbox_menu::before,
	body.shIpsCompactHeader #elFullReports_menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -16px;
		height: 16px;
	}
}

@media (min-width: 981px) and (max-width: 1279px) {
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		padding-left: 8px !important;
		padding-right: 8px !important;
		font-size: 12px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:not(#cUserLink) > a {
		padding-left: 7px !important;
		padding-right: 7px !important;
	}
}

/* Alpha 0.7.1.6: unify the compact desktop header into one uninterrupted navigation bar. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container,
	body.shIpsCompactHeader .shIpsCompactHeader__target {
		display: grid !important;
		grid-template-columns: minmax(320px, 1fr) auto auto;
		align-items: stretch !important;
		column-gap: 0 !important;
		width: calc(100% - 24px) !important;
		max-width: 1540px !important;
		padding: 0 12px !important;
		background: linear-gradient(90deg, rgba(3, 12, 24, .99), rgba(4, 18, 33, .99) 70%, rgba(17, 9, 13, .98)) !important;
		border: 1px solid rgba(36, 200, 255, .17) !important;
		border-top: 0 !important;
		border-radius: 0 0 10px 10px !important;
		box-shadow: 0 10px 28px rgba(0, 0, 0, .30), inset 0 -1px 0 rgba(255, 100, 16, .18) !important;
		box-sizing: border-box;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] {
		grid-column: 1;
		display: flex !important;
		align-items: stretch;
		justify-content: flex-start;
		min-width: 0;
		width: auto !important;
		margin: 0 !important;
		padding: 0 8px 0 0 !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li {
		flex: 0 0 auto;
		min-width: 0;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		padding-right: clamp(10px, .9vw, 16px) !important;
		padding-left: clamp(10px, .9vw, 16px) !important;
		white-space: nowrap;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks {
		grid-column: 2;
		display: flex !important;
		align-items: stretch;
		justify-self: end;
		min-width: 0;
		height: 100% !important;
		margin: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand,
	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		margin: 0 8px;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		margin: 0 2px;
		padding-right: clamp(10px, .85vw, 15px) !important;
		padding-left: clamp(10px, .85vw, 15px) !important;
		border-radius: 8px;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		grid-column: 3;
		display: flex !important;
		align-items: center;
		justify-self: end;
		align-self: stretch;
		min-width: max-content;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 0 0 10px !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		flex: 0 0 auto;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:not(#cUserLink) > a,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		margin: 0 1px;
		padding-right: 9px !important;
		padding-left: 9px !important;
		border-radius: 8px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .elUserNav_sep {
		margin: 0 3px !important;
	}

	/* Keep each IPS popup attached to its trigger without clipping or a pointer gap. */
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li:has(> a[data-ipsmenu])::after {
		content: "";
		position: absolute;
		left: -3px;
		right: -3px;
		top: calc(100% - 2px);
		height: 18px;
		z-index: 11999;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .ipsMenu,
	body.shIpsCompactHeader #elUserLink_menu,
	body.shIpsCompactHeader #elCreateNew_menu,
	body.shIpsCompactHeader #elFullNotifications_menu,
	body.shIpsCompactHeader #elFullInbox_menu,
	body.shIpsCompactHeader #elFullReports_menu {
		z-index: 13000 !important;
	}
}

@media (min-width: 981px) and (max-width: 1360px) {
	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container,
	body.shIpsCompactHeader .shIpsCompactHeader__target {
		grid-template-columns: minmax(285px, 1fr) auto auto;
		padding-right: 7px !important;
		padding-left: 7px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link span {
		display: none !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		width: 44px;
		padding: 0 !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		margin-right: 4px;
		margin-left: 4px;
	}
}


/* Alpha 0.7.1.7: rebuild the compact desktop header from the actual IPS DOM.
   Direct children are primaryNavBar, hidden search, player links and elUserNav. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_mainNav,
	body.shIpsCompactHeader #ipsLayout_header nav {
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container.shIpsCompactHeader__target,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container.shIpsCompactHeader__target {
		display: grid !important;
		grid-template-columns: max-content minmax(360px, 1fr) max-content !important;
		grid-template-rows: 72px !important;
		align-items: stretch !important;
		column-gap: 18px !important;
		width: calc(100vw - 32px) !important;
		max-width: none !important;
		min-width: 0 !important;
		height: 72px !important;
		min-height: 72px !important;
		margin-right: auto !important;
		margin-left: auto !important;
		padding: 0 16px !important;
		box-sizing: border-box !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] {
		grid-column: 1 !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		width: max-content !important;
		min-width: 0 !important;
		height: 72px !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li,
	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		height: 72px !important;
		flex: 0 0 auto !important;
		white-space: nowrap !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__target > ul[data-role="primaryNavBar"] > li > a {
		padding-right: 12px !important;
		padding-left: 12px !important;
	}

	body.shIpsCompactHeader .shIpsCompactHeader__search {
		display: none !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks {
		grid-column: 2 !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		justify-content: center !important;
		justify-self: stretch !important;
		width: auto !important;
		min-width: 360px !important;
		max-width: none !important;
		height: 72px !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		flex: 0 0 132px !important;
		width: 132px !important;
		min-width: 132px !important;
		height: 72px !important;
		margin: 0 8px !important;
		padding: 0 6px !important;
		box-sizing: border-box !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand img {
		max-width: 120px !important;
		max-height: 66px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		flex: 0 0 auto !important;
		min-width: 132px !important;
		height: 72px !important;
		margin: 0 2px !important;
		padding: 0 10px !important;
		box-sizing: border-box !important;
		white-space: nowrap !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		grid-column: 3 !important;
		display: flex !important;
		flex-flow: row nowrap !important;
		align-items: stretch !important;
		justify-content: flex-end !important;
		justify-self: end !important;
		align-self: stretch !important;
		width: auto !important;
		min-width: max-content !important;
		max-width: none !important;
		height: 72px !important;
		min-height: 72px !important;
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
		white-space: nowrap !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
		position: relative !important;
		z-index: 9000 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		display: flex !important;
		flex: 0 0 auto !important;
		align-items: center !important;
		width: auto !important;
		min-width: 0 !important;
		height: 72px !important;
		margin: 0 !important;
		padding: 0 !important;
		float: none !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li > a,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		display: flex !important;
		flex: 0 0 auto !important;
		align-items: center !important;
		justify-content: center !important;
		width: auto !important;
		min-width: 42px !important;
		height: 46px !important;
		min-height: 46px !important;
		margin: 13px 1px !important;
		padding: 0 11px !important;
		box-sizing: border-box !important;
		white-space: nowrap !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cCreate > a {
		min-width: 94px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .cUserNav_icon > a {
		width: 44px !important;
		min-width: 44px !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .elUserNav_sep {
		flex: 0 0 1px !important;
		width: 1px !important;
		min-width: 1px !important;
		height: 28px !important;
		margin: 22px 4px !important;
		padding: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink {
		display: flex !important;
		flex-flow: row nowrap !important;
		align-items: center !important;
		gap: 7px !important;
		width: auto !important;
		min-width: max-content !important;
		padding: 0 2px 0 7px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > .ipsUserPhoto {
		flex: 0 0 34px !important;
		width: 34px !important;
		min-width: 34px !important;
		height: 34px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		min-width: max-content !important;
		margin-left: 0 !important;
		padding-right: 10px !important;
		padding-left: 4px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .ipsMenu,
	body.shIpsCompactHeader #elUserLink_menu,
	body.shIpsCompactHeader #elCreateNew_menu,
	body.shIpsCompactHeader #elFullNotifications_menu,
	body.shIpsCompactHeader #elFullInbox_menu,
	body.shIpsCompactHeader #elFullReports_menu {
		z-index: 15000 !important;
		pointer-events: auto !important;
	}
}

@media (min-width: 981px) and (max-width: 1320px) {
	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container.shIpsCompactHeader__target,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container.shIpsCompactHeader__target {
		grid-template-columns: max-content minmax(210px, 1fr) max-content !important;
		column-gap: 8px !important;
		padding-right: 8px !important;
		padding-left: 8px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link span {
		display: none !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__link {
		min-width: 46px !important;
		width: 46px !important;
		padding: 0 !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks__brand {
		flex-basis: 116px !important;
		width: 116px !important;
		min-width: 116px !important;
		margin-right: 3px !important;
		margin-left: 3px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks {
		min-width: 210px !important;
	}
}


/* Alpha 0.7.1.8: widen and evenly space the desktop account-control area. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		width: 520px !important;
		min-width: 520px !important;
		padding-right: 14px !important;
		padding-left: 14px !important;
		gap: 6px !important;
		justify-content: space-between !important;
		box-sizing: border-box !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		justify-content: center !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li > a,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cCreate > a {
		min-width: 108px !important;
		padding-right: 15px !important;
		padding-left: 15px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .cUserNav_icon > a {
		width: 50px !important;
		min-width: 50px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav .elUserNav_sep {
		margin-right: 2px !important;
		margin-left: 2px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink {
		min-width: 148px !important;
		gap: 10px !important;
		padding-right: 4px !important;
		padding-left: 8px !important;
	}
}

@media (min-width: 981px) and (max-width: 1450px) {
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		width: 480px !important;
		min-width: 480px !important;
		gap: 4px !important;
		padding-right: 10px !important;
		padding-left: 10px !important;
	}
}


/* Alpha 0.7.1.10: authoritative compact-header account controls and native IPS menu anchoring. */
@media (min-width: 981px) {
	/* The account strip remains a fixed, protected column in the unified bar. */
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		position: relative !important;
		display: flex !important;
		align-items: stretch !important;
		justify-content: space-between !important;
		width: 520px !important;
		min-width: 520px !important;
		height: 72px !important;
		padding: 0 12px !important;
		gap: 4px !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		position: relative !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: 72px !important;
		overflow: visible !important;
	}

	/* Full-height separators across the complete account strip. */
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li.elUserNav_sep {
		align-self: stretch !important;
		flex: 0 0 1px !important;
		width: 1px !important;
		min-width: 1px !important;
		height: auto !important;
		margin: 0 4px !important;
		padding: 0 !important;
		background: rgba(36, 200, 255, .24) !important;
		border: 0 !important;
	}

	/* Avatar is a true square and cannot inherit IPS inline-photo distortion. */
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a.ipsUserPhoto,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > .ipsUserPhoto {
		display: block !important;
		flex: 0 0 38px !important;
		width: 38px !important;
		min-width: 38px !important;
		max-width: 38px !important;
		height: 38px !important;
		min-height: 38px !important;
		max-height: 38px !important;
		margin: 0 !important;
		padding: 0 !important;
		aspect-ratio: 1 / 1 !important;
		line-height: 38px !important;
		border-radius: 6px !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a.ipsUserPhoto img,
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > .ipsUserPhoto img {
		display: block !important;
		width: 100% !important;
		height: 100% !important;
		min-width: 100% !important;
		min-height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		object-fit: cover !important;
		object-position: center !important;
		border-radius: 5px !important;
	}

	/* Do not force IPS menus open with hover CSS. Native data-ipsMenu owns visibility. */
	body.shIpsCompactHeader #cUserLink::after,
	body.shIpsCompactHeader #elUserLink_menu::before,
	body.shIpsCompactHeader #elCreateNew_menu::before,
	body.shIpsCompactHeader #elFullNotifications_menu::before,
	body.shIpsCompactHeader #elFullInbox_menu::before,
	body.shIpsCompactHeader #elFullReports_menu::before {
		display: none !important;
		content: none !important;
	}

	/* JavaScript positions open native IPS menus below their actual trigger. */
	body.shIpsCompactHeader #elUserLink_menu,
	body.shIpsCompactHeader #elCreateNew_menu,
	body.shIpsCompactHeader #elFullNotifications_menu,
	body.shIpsCompactHeader #elFullInbox_menu,
	body.shIpsCompactHeader #elFullReports_menu {
		z-index: 20000 !important;
		margin: 0 !important;
		pointer-events: auto !important;
	}
}

@media (min-width: 981px) and (max-width: 1450px) {
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		width: 480px !important;
		min-width: 480px !important;
		padding-right: 9px !important;
		padding-left: 9px !important;
	}
}

/* Alpha 0.7.1.11: native IPS user-bar alignment and menu ownership. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav {
		display: flex !important;
		align-items: center !important;
		height: 72px !important;
		min-height: 72px !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav > li {
		display: flex !important;
		align-items: center !important;
		align-self: stretch !important;
		height: 72px !important;
		min-height: 72px !important;
		vertical-align: middle !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		align-self: stretch !important;
		height: 72px !important;
		min-height: 72px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a.ipsUserPhoto {
		display: block !important;
		align-self: center !important;
		position: static !important;
		top: auto !important;
		bottom: auto !important;
		transform: none !important;
		width: 38px !important;
		height: 38px !important;
		min-width: 38px !important;
		min-height: 38px !important;
		max-width: 38px !important;
		max-height: 38px !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 38px !important;
		aspect-ratio: 1 / 1 !important;
		border-radius: 6px !important;
		overflow: hidden !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a.ipsUserPhoto img {
		display: block !important;
		width: 38px !important;
		height: 38px !important;
		min-width: 38px !important;
		min-height: 38px !important;
		max-width: 38px !important;
		max-height: 38px !important;
		margin: 0 !important;
		object-fit: cover !important;
		object-position: center !important;
		border-radius: 5px !important;
	}

	body.shIpsCompactHeader #elUserNav.shIpsCompactHeader__userNav #cUserLink > a#elUserLink {
		display: flex !important;
		align-items: center !important;
		align-self: stretch !important;
		height: 72px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Keep native IPS menu state and coordinates untouched. */
	body.shIpsCompactHeader #elCreateNew_menu,
	body.shIpsCompactHeader #elFullNotifications_menu,
	body.shIpsCompactHeader #elFullInbox_menu,
	body.shIpsCompactHeader #elFullReports_menu,
	body.shIpsCompactHeader #elUserLink_menu {
		z-index: 20000 !important;
		pointer-events: auto !important;
	}
}



/* Alpha 0.7.1.12: keep the native IPS user bar in its original DOM parent.
   The source header is visually overlaid into the unified bar; elUserNav is
   never reparented after core.front.core.userbar/data-ipsMenu initialise. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_header {
		position: relative !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source {
		position: absolute !important;
		top: 0 !important;
		right: 0 !important;
		left: auto !important;
		z-index: 12000 !important;
		display: block !important;
		width: 552px !important;
		height: 72px !important;
		min-height: 72px !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source > .ipsLayout_container {
		position: relative !important;
		display: flex !important;
		align-items: stretch !important;
		justify-content: flex-end !important;
		width: 520px !important;
		max-width: 520px !important;
		height: 72px !important;
		min-height: 72px !important;
		margin: 0 16px 0 auto !important;
		padding: 0 !important;
		box-sizing: border-box !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elSiteTitle {
		display: none !important;
	}

	/* Reserve the native user-bar width inside the single visual navigation row. */
	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container.shIpsCompactHeader__target,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container.shIpsCompactHeader__target {
		grid-template-columns: max-content minmax(360px, 1fr) !important;
		padding-right: 552px !important;
	}

	body.shIpsCompactHeader .shHeaderPlayerLinks {
		grid-column: 2 !important;
	}

	/* Native user bar: stable parent, native menu lifecycle, visual spacing only. */
	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav.shIpsCompactHeader__userNav {
		position: relative !important;
		display: flex !important;
		flex-flow: row nowrap !important;
		align-items: stretch !important;
		justify-content: space-between !important;
		width: 520px !important;
		min-width: 520px !important;
		max-width: 520px !important;
		height: 72px !important;
		min-height: 72px !important;
		margin: 0 !important;
		padding: 0 12px !important;
		gap: 4px !important;
		box-sizing: border-box !important;
		float: none !important;
		overflow: visible !important;
		z-index: 12001 !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav > li {
		position: relative !important;
		display: flex !important;
		align-items: center !important;
		align-self: stretch !important;
		height: 72px !important;
		min-height: 72px !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		float: none !important;
		overflow: visible !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #cUserLink > a.ipsUserPhoto {
		align-self: center !important;
		position: relative !important;
		top: auto !important;
		transform: none !important;
		width: 38px !important;
		height: 38px !important;
		min-width: 38px !important;
		min-height: 38px !important;
		max-width: 38px !important;
		max-height: 38px !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 38px !important;
	}

	/* Do not override IPS-calculated menu coordinates or visibility. */
	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source .ipsMenu {
		z-index: 22000 !important;
		pointer-events: auto !important;
	}
}

@media (min-width: 981px) and (max-width: 1450px) {
	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source {
		width: 500px !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source > .ipsLayout_container,
	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav.shIpsCompactHeader__userNav {
		width: 480px !important;
		min-width: 480px !important;
		max-width: 480px !important;
	}

	body.shIpsCompactHeader #ipsLayout_mainNav > .ipsLayout_container.shIpsCompactHeader__target,
	body.shIpsCompactHeader #ipsLayout_header nav > .ipsLayout_container.shIpsCompactHeader__target {
		grid-template-columns: max-content minmax(210px, 1fr) !important;
		padding-right: 500px !important;
	}
}


/* Alpha 0.7.1.18: global compact header and dropdown search. */
@media (min-width: 981px) {
 body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source {
  position:absolute!important; top:0!important; right:16px!important; left:auto!important;
  width:auto!important; height:72px!important; min-height:72px!important;
  margin:0!important; padding:0!important; background:transparent!important;
  border:0!important; overflow:visible!important; z-index:9100!important; pointer-events:none!important;
 }
 body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source .ipsLayout_container {
  width:auto!important; height:72px!important; min-height:72px!important; margin:0!important; padding:0!important;
  display:flex!important; align-items:stretch!important; justify-content:flex-end!important; overflow:visible!important;
 }
 body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elSiteTitle {display:none!important;}
 body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav {pointer-events:auto!important;}
 body.shGlobalHeaderReady .shIpsCompactHeader__target {padding-right:430px!important; position:relative!important;}
 body.shGlobalHeaderReady .shHeaderPlayerLinks.shGlobalHeaderLinks {
  position:relative!important; display:flex!important; align-items:stretch!important; justify-content:center!important;
  min-width:430px!important; overflow:visible!important;
 }
 body.shGlobalHeaderReady .shHeaderSearchToggle {
  display:flex; align-items:center; justify-content:center; gap:7px; min-width:58px; height:72px;
  padding:0 13px; border:0; background:transparent; color:#fff; cursor:pointer; font-weight:700;
 }
 body.shGlobalHeaderReady .shHeaderSearchToggle:hover,
 body.shGlobalHeaderReady .shHeaderSearchToggle[aria-expanded="true"] {color:#ff7a19; background:rgba(0,166,255,.08);}
 body.shGlobalHeaderReady .shHeaderSearchToggle span {font-size:11px; text-transform:uppercase; letter-spacing:.06em;}
 body.shGlobalHeaderReady .shHeaderSearchPanel {
  position:absolute; top:calc(100% + 10px); right:0; width:min(430px,calc(100vw - 32px)); padding:12px;
  border:1px solid rgba(0,166,255,.42); border-radius:10px; background:linear-gradient(145deg,#061525,#020b14);
  box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 20px rgba(0,166,255,.12); z-index:16000;
 }
 body.shGlobalHeaderReady .shHeaderSearchPanel[hidden] {display:none!important;}
 body.shGlobalHeaderReady .shHeaderSearchPanel form {display:flex; align-items:center; gap:8px; margin:0;}
 body.shGlobalHeaderReady .shHeaderSearchPanel input {
  flex:1 1 auto; min-width:0; height:42px; padding:0 14px; border:1px solid rgba(0,166,255,.38);
  border-radius:7px; background:#03101d; color:#fff; outline:0;
 }
 body.shGlobalHeaderReady .shHeaderSearchPanel input:focus {border-color:#ff7a19; box-shadow:0 0 0 2px rgba(255,122,25,.16);}
 body.shGlobalHeaderReady .shHeaderSearchPanel button[type="submit"] {
  flex:0 0 44px; width:44px; height:42px; border:1px solid #ff7a19; border-radius:7px;
  background:linear-gradient(180deg,#ff8a22,#e85b00); color:#fff; cursor:pointer;
 }
}
@media (min-width:981px) and (max-width:1450px){
 body.shGlobalHeaderReady .shIpsCompactHeader__target{padding-right:390px!important;}
 body.shGlobalHeaderReady .shHeaderPlayerLinks.shGlobalHeaderLinks{min-width:300px!important;}
 body.shGlobalHeaderReady .shHeaderSearchToggle span{display:none!important;}
}

/* Alpha 0.7.1.20: vertically centre the signed-in profile link. */
@media (min-width: 981px) {
	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink,
	body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink {
		display: flex !important;
		align-items: center !important;
		align-content: center !important;
		align-self: stretch !important;
		height: 72px !important;
		min-height: 72px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a.ipsUserPhoto,
	body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a.ipsUserPhoto {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		align-self: center !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		top: auto !important;
		transform: none !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a#elUserLink,
	body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a#elUserLink {
		display: flex !important;
		align-items: center !important;
		align-self: stretch !important;
		height: 72px !important;
		min-height: 72px !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		line-height: 1 !important;
		top: auto !important;
		transform: none !important;
	}

	body.shIpsCompactHeader #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a#elUserLink .fa,
	body.shGlobalHeaderReady #ipsLayout_header > header.shIpsCompactHeader__source #elUserNav #cUserLink > a#elUserLink .fa {
		align-self: center !important;
		margin-top: 0 !important;
	}
}


/* =========================================================
   Sonic Chat composer media tools — Alpha 0.7.1.21
   ========================================================= */
.shNativeChat__composer{position:relative;display:block;padding:12px 16px 14px}
.shNativeChat__composeRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.shChatTools{position:relative;margin-top:9px}
.shChatTools__buttons{display:flex;flex-wrap:wrap;gap:7px}
.shChatTools__button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;border:1px solid rgba(36,200,255,.2);border-radius:7px;color:#a9c8dc;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:rgba(4,14,27,.72);cursor:pointer;transition:.18s ease}
.shChatTools__button:hover,.shChatTools__button.is-active{border-color:rgba(255,100,16,.72);color:#fff;background:rgba(255,100,16,.14);box-shadow:0 0 14px rgba(255,100,16,.1)}
.shChatTools__button i{color:#ff741f}
.shChatPicker{position:absolute;z-index:40;left:0;right:0;bottom:calc(100% + 9px);overflow:hidden;border:1px solid rgba(255,112,31,.5);border-radius:12px;background:linear-gradient(145deg,rgba(3,11,22,.99),rgba(8,24,39,.98));box-shadow:0 22px 55px rgba(0,0,0,.62),0 0 24px rgba(255,96,16,.12)}
.shChatPicker[hidden]{display:none!important}
.shChatPicker__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid rgba(36,200,255,.15);background:rgba(2,8,17,.8)}
.shChatPicker__header>strong{color:#fff;text-transform:uppercase;letter-spacing:.06em;font-size:12px}
.shChatPicker__headerActions{display:flex;align-items:center;gap:8px}
.shChatPicker__search{display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid rgba(36,200,255,.24);border-radius:7px;background:rgba(4,14,27,.85)}
.shChatPicker__search input{width:150px;height:31px;border:0;color:#fff;background:transparent;outline:0}
.shChatPicker__close{width:32px;height:32px;border:1px solid rgba(255,100,16,.3);border-radius:7px;color:#ff9b61;font-size:20px;background:rgba(255,100,16,.08);cursor:pointer}
.shChatPicker__recent{padding:9px 12px 2px}
.shChatPicker__recent>span{display:block;margin-bottom:6px;color:#6f91a7;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.shChatPicker__recent>div{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}
.shChatPicker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:7px;max-height:290px;overflow-y:auto;padding:11px 12px 14px}
.shChatPicker__item{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px 4px;border:1px solid rgba(36,200,255,.12);border-radius:8px;color:#9ab5c8;font-size:9px;background:rgba(6,19,34,.74);cursor:pointer}
.shChatPicker__item:hover{border-color:rgba(255,100,16,.55);color:#fff;background:rgba(255,100,16,.1);transform:translateY(-1px)}
.shChatPicker__item img{width:46px;height:46px;object-fit:contain}
.shChatPicker__recent .shChatPicker__item{flex:0 0 52px;padding:4px}
.shChatPicker__recent .shChatPicker__item img{width:36px;height:36px}
.shChatPicker__recent .shChatPicker__item span{display:none}
.shChatPicker__empty{grid-column:1/-1;padding:28px;color:#7893a7;text-align:center}
.shChatPicker__giphy{padding:18px}
.shChatPicker__giphy p{margin:0 0 12px;color:#94afc1;font-size:11px;line-height:1.5}
.shChatPicker__giphyRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.shChatPicker__giphyRow input{min-height:40px;padding:8px 10px;border:1px solid rgba(36,200,255,.25);border-radius:7px;color:#fff;background:rgba(4,14,27,.9);outline:0}
.shChatPicker__giphyRow button{border:1px solid rgba(255,100,16,.55);border-radius:7px;color:#fff;font-weight:800;background:linear-gradient(135deg,#ff6410,#b93809);cursor:pointer}
.shChatPicker__giphyError{min-height:17px;margin-top:7px;color:#ff9a67;font-size:10px}
.shNativeMessage__text{white-space:pre-wrap}
.shNativeMessage__emote{display:inline-block;width:42px;height:42px;margin:0 3px;object-fit:contain;vertical-align:middle}
.shNativeMessage__gif{display:block;max-width:min(100%,360px);max-height:260px;margin-top:8px;border:1px solid rgba(36,200,255,.2);border-radius:9px;object-fit:contain;background:#020812}
@media(max-width:680px){.shNativeChat__composeRow{grid-template-columns:minmax(0,1fr)}.shNativeChat__send{width:100%}.shChatTools__buttons{display:grid;grid-template-columns:repeat(4,1fr)}.shChatTools__button{justify-content:center;padding:6px}.shChatTools__button span{display:none}.shChatPicker{position:fixed;left:8px;right:8px;bottom:8px;max-height:72vh}.shChatPicker__header{align-items:flex-start}.shChatPicker__search input{width:105px}.shChatPicker__grid{grid-template-columns:repeat(4,1fr);max-height:50vh}.shNativeMessage__gif{max-height:210px}}


/* =========================================================
   Sonic Chat inline composer controls — Alpha 0.7.1.22
   ========================================================= */
.shNativeChat__composer{position:relative;display:block;padding:12px 16px 14px}
.shNativeChat__composeRow{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:stretch;gap:9px}
.shNativeChat__input{min-width:0;height:42px;padding:0 14px!important;border:1px solid rgba(36,200,255,.25)!important;border-radius:9px!important;color:#eef9ff!important;background:linear-gradient(145deg,rgba(3,12,24,.96),rgba(8,26,42,.94))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 0 0 1px rgba(0,0,0,.18)!important;outline:0!important;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.shNativeChat__input::placeholder{color:#718da1!important;opacity:1}
.shNativeChat__input:hover{border-color:rgba(36,200,255,.42)!important}
.shNativeChat__input:focus{border-color:rgba(255,105,24,.78)!important;background:linear-gradient(145deg,rgba(4,15,28,.99),rgba(10,30,48,.98))!important;box-shadow:0 0 0 2px rgba(255,100,16,.12),0 0 20px rgba(255,100,16,.08)!important}
.shChatTools{position:relative;margin:0}
.shChatTools__buttons{display:grid;grid-template-columns:repeat(4,38px);gap:5px;height:42px}
.shChatTools__button{width:38px;height:42px;min-height:42px;padding:0;justify-content:center;border-radius:8px}
.shChatTools__button span{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.shChatTools__button i{font-size:15px}
.shNativeChat__send{height:42px;align-self:stretch}
.shChatPicker{left:auto;right:0;width:min(620px,calc(100vw - 36px));bottom:calc(100% + 10px)}
@media(max-width:800px){.shNativeChat__composeRow{grid-template-columns:minmax(0,1fr) auto}.shChatTools__buttons{grid-template-columns:repeat(4,36px)}.shChatTools__button{width:36px}.shNativeChat__send{grid-column:1/-1;width:100%}}
@media(max-width:520px){.shNativeChat__composer{padding-left:10px;padding-right:10px}.shNativeChat__composeRow{grid-template-columns:minmax(0,1fr) auto;gap:6px}.shChatTools__buttons{grid-template-columns:repeat(2,34px);height:auto;gap:4px}.shChatTools__button{width:34px;height:19px;min-height:19px;border-radius:6px}.shChatTools__button i{font-size:12px}.shNativeChat__input{height:42px}.shChatPicker{position:fixed;left:8px;right:8px;width:auto;bottom:8px}}


/* =========================================================
   Sonic Chat instant emote reactions — Alpha 0.7.1.23
   ========================================================= */
.shChatTools__buttons{grid-template-columns:repeat(3,38px)}
.shNativeMessage__emote{width:96px!important;height:96px!important;margin:4px 6px!important;filter:drop-shadow(0 0 10px rgba(255,104,24,.18))}
.shNativeMessage__text:has(.shNativeMessage__emote){line-height:1}
@media(max-width:800px){.shChatTools__buttons{grid-template-columns:repeat(3,36px)}}
@media(max-width:520px){.shChatTools__buttons{grid-template-columns:repeat(3,34px)}.shChatTools__button{height:42px;min-height:42px}.shNativeMessage__emote{width:86px!important;height:86px!important}}


/* Alpha 0.7.1.26 — live Giphy browser */
.shChatPicker__giphy{padding:12px;max-height:430px;overflow-y:auto}
.shChatPicker__giphySearch{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid rgba(36,200,255,.24);border-radius:8px;background:rgba(4,14,27,.9)}
.shChatPicker__giphySearch i{color:#ff741f}
.shChatPicker__giphySearch input{width:100%;height:40px;border:0;outline:0;color:#fff;background:transparent}
.shChatPicker__giphyStatus{min-height:28px;padding:9px 2px 5px;color:#86a9bf;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.shChatPicker__giphyGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.shChatPicker__giphyItem{position:relative;overflow:hidden;min-height:96px;padding:0;border:1px solid rgba(36,200,255,.13);border-radius:8px;background:rgba(3,12,23,.9);cursor:pointer}
.shChatPicker__giphyItem:hover{border-color:rgba(255,100,16,.72);box-shadow:0 0 16px rgba(255,100,16,.14);transform:translateY(-1px)}
.shChatPicker__giphyItem img{display:block;width:100%;height:112px;object-fit:cover}
.shChatPicker__giphyMore{display:block;width:100%;margin-top:10px;min-height:38px;border:1px solid rgba(255,100,16,.5);border-radius:8px;color:#fff;font-weight:800;background:linear-gradient(135deg,rgba(255,100,16,.28),rgba(130,42,8,.35));cursor:pointer}
.shChatPicker__giphyMore[hidden]{display:none!important}
@media(max-width:520px){.shChatPicker__giphyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.shChatPicker__giphyItem img{height:105px}}


/* Alpha 0.7.1.27: context-aware Sonic smillie sizing */
.shNativeMessage__smillie{
	display:inline-block;
	width:1.45em;
	height:1.45em;
	margin:0 .12em;
	object-fit:contain;
	vertical-align:-.28em;
}
.shNativeMessage__text--smilliesOnly{
	line-height:1;
}
.shNativeMessage__text--smilliesOnly .shNativeMessage__smillie{
	width:96px;
	height:96px;
	margin:4px 6px;
	vertical-align:middle;
	filter:drop-shadow(0 0 10px rgba(255,104,24,.18));
}
@media(max-width:520px){
	.shNativeMessage__text--smilliesOnly .shNativeMessage__smillie{
		width:86px;
		height:86px;
	}
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.7.1.28 community layout
   ========================================================= */

/* Keep Sonic Chat and Latest Forum Topics together as one balanced
   community row on the main portal. */
.shCommunityPair {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	min-width: 0;
}

.shCommunityPair > .shNativeChat,
.shCommunityPair > .shLatestTopics {
	min-width: 0;
	height: 100%;
	min-height: 700px;
}

.shCommunityPair > .shNativeChat {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
}

.shCommunityPair > .shNativeChat .shNativeChat__messages {
	height: auto;
	min-height: 540px;
	max-height: 680px;
}

.shCommunityPair > .shLatestTopics {
	display: flex;
	flex-direction: column;
}

.shCommunityPair > .shLatestTopics .shLatestTopics__grid {
	flex: 1 1 auto;
	align-content: start;
	grid-template-columns: 1fr;
	overflow-y: auto;
	max-height: 620px;
}

/* The dedicated Radio & Chat room gets a taller conversation viewport. */
.shRadioChatOnly .shNativeChat {
	min-height: 760px;
}

.shRadioChatOnly .shNativeChat__messages {
	min-height: 590px;
	max-height: 720px;
}

@media screen and (max-width: 980px) {
	.shCommunityPair {
		grid-template-columns: 1fr;
	}

	.shCommunityPair > .shNativeChat,
	.shCommunityPair > .shLatestTopics {
		min-height: 560px;
	}

	.shCommunityPair > .shNativeChat .shNativeChat__messages {
		min-height: 400px;
		max-height: 540px;
	}
}

@media screen and (max-width: 600px) {
	.shCommunityPair > .shNativeChat,
	.shCommunityPair > .shLatestTopics {
		min-height: 480px;
	}

	.shCommunityPair > .shNativeChat .shNativeChat__messages {
		min-height: 320px;
		max-height: 430px;
	}

	.shRadioChatOnly .shNativeChat {
		min-height: 620px;
	}

	.shRadioChatOnly .shNativeChat__messages {
		min-height: 440px;
		max-height: 560px;
	}
}


/* Alpha 0.7.1.29 — Recent Downloads beside Sonic Chat in the dedicated room. */
.shRadioChatOnly .shCommunityPair { grid-template-columns: minmax(0, 1.55fr) minmax(320px, .85fr); align-items: stretch; }
.shRadioChatOnly .shCommunityPair > .shNativeChat, .shRadioChatOnly .shCommunityPair > .shRadioChatDownloads { min-height: 760px; height: 100%; }
.shRadioChatDownloads { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid rgba(36,200,255,.22); border-radius:13px; background:linear-gradient(145deg,rgba(5,15,28,.97),rgba(8,21,36,.94)); box-shadow:0 16px 38px rgba(0,0,0,.34); }
.shRadioChatDownloads__header { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:20px; border-bottom:1px solid rgba(36,200,255,.15); background:rgba(2,9,19,.5); }
.shRadioChatDownloads__title { margin:7px 0 0; color:#fff; font-size:20px; font-weight:900; text-transform:uppercase; }
.shRadioChatDownloads__link { flex:0 0 auto; color:var(--sh-blue)!important; font-size:11px; font-weight:900; letter-spacing:.04em; text-decoration:none!important; text-transform:uppercase; }
.shRadioChatDownloads__list { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; gap:9px; overflow-y:auto; padding:14px; }
.shRadioChatDownload { display:grid; grid-template-columns:66px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:80px; padding:8px 10px 8px 8px; border:1px solid rgba(36,200,255,.13); border-radius:10px; background:rgba(5,17,31,.76); color:#fff!important; text-decoration:none!important; transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.shRadioChatDownload:hover { border-color:rgba(255,100,16,.58); background:rgba(255,100,16,.09); transform:translateY(-1px); }
.shRadioChatDownload__art { display:flex; width:66px; height:64px; align-items:center; justify-content:center; overflow:hidden; border:1px solid rgba(36,200,255,.18); border-radius:8px; background:rgba(2,10,20,.9); color:var(--sh-orange); font-size:22px; }
.shRadioChatDownload__art img { width:100%; height:100%; object-fit:cover; }
.shRadioChatDownload__copy { display:flex; min-width:0; flex-direction:column; gap:5px; }
.shRadioChatDownload__copy strong,.shRadioChatDownload__copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.shRadioChatDownload__copy strong { color:#fff; font-size:13px; font-weight:900; }
.shRadioChatDownload__copy small { color:#8da9bc; font-size:10px; }
.shRadioChatDownload__meta { display:flex; align-items:center; gap:5px; color:#82a4b9; font-size:10px; }
.shRadioChatDownload__meta b { color:#fff; }
.shRadioChatDownloads__empty { display:flex; flex:1 1 auto; min-height:260px; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#7895a9; text-align:center; }
.shRadioChatDownloads__empty i { color:var(--sh-orange); font-size:34px; }
.shRadioChatDownloads__empty strong { color:#fff; font-size:14px; text-transform:uppercase; }
@media screen and (max-width:1050px) { .shRadioChatOnly .shCommunityPair { grid-template-columns:1fr; } .shRadioChatOnly .shCommunityPair > .shRadioChatDownloads { min-height:520px; } }
@media screen and (max-width:600px) { .shRadioChatOnly .shCommunityPair > .shRadioChatDownloads { min-height:460px; } .shRadioChatDownloads__header { padding:16px; } .shRadioChatDownload { grid-template-columns:54px minmax(0,1fr) auto; } .shRadioChatDownload__art { width:54px; height:54px; } }


/* =========================================================
   Sonic Radio Suite — Alpha 0.7.1.30 Latest Releases refresh
   ========================================================= */
.shReleasesPage.shSonicInnerPage {
	position: relative;
	isolation: isolate;
	max-width: 1380px;
	margin: 24px auto 72px;
	padding: 26px clamp(16px, 3vw, 34px) 54px;
	border: 1px solid rgba(36, 200, 255, .2);
	border-radius: 18px;
	background:
		radial-gradient(circle at 8% 0%, rgba(36, 200, 255, .12), transparent 34%),
		radial-gradient(circle at 92% 8%, rgba(255, 100, 16, .12), transparent 32%),
		linear-gradient(145deg, rgba(4, 13, 25, .97), rgba(8, 20, 35, .94));
	box-shadow: 0 24px 60px rgba(0, 0, 0, .42), inset 0 1px rgba(255,255,255,.025);
	overflow: visible;
}
.shReleasesPage__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
	padding: 10px 4px 24px;
	border-bottom: 1px solid rgba(36, 200, 255, .16);
}
.shReleasesPage__header h1 {
	margin: 8px 0 7px;
	color: #fff;
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 950;
	letter-spacing: -.025em;
	text-transform: uppercase;
	text-shadow: 0 0 22px rgba(36, 200, 255, .18);
}
.shReleasesPage__header p { margin: 0; color: #93adbf; opacity: 1; }
.shReleasesPage__back {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid rgba(36, 200, 255, .3);
	border-radius: 9px;
	background: rgba(4, 16, 29, .78);
	color: #fff !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .045em;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.shReleasesPage__back:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 100, 16, .68);
	box-shadow: 0 0 20px rgba(36, 200, 255, .14), 0 0 24px rgba(255, 100, 16, .12);
}
.shReleaseGrid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}
.shReleaseCard {
	position: relative;
	isolation: isolate;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: visible;
	border: 1px solid rgba(36, 200, 255, .24);
	border-radius: 15px;
	background: linear-gradient(150deg, rgba(5, 16, 29, .98), rgba(9, 24, 40, .96));
	box-shadow: 0 18px 38px rgba(0,0,0,.38);
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.shReleaseCard::before,
.shReleaseCard::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	filter: blur(24px);
	opacity: .62;
	transition: opacity .2s ease, transform .2s ease;
}
.shReleaseCard::before {
	left: -10px;
	top: 8%;
	width: 58%;
	height: 72%;
	border-radius: 50%;
	background: rgba(36, 200, 255, .42);
	transform: translate(-5%, 3%);
}
.shReleaseCard::after {
	right: -10px;
	bottom: 5%;
	width: 58%;
	height: 70%;
	border-radius: 50%;
	background: rgba(255, 100, 16, .46);
	transform: translate(5%, 3%);
}
.shReleaseCard:hover {
	transform: translateY(-5px);
	border-color: rgba(255, 100, 16, .58);
	box-shadow: 0 24px 50px rgba(0,0,0,.46), 0 0 24px rgba(36,200,255,.13), 0 0 28px rgba(255,100,16,.13);
}
.shReleaseCard:hover::before,
.shReleaseCard:hover::after { opacity: .9; transform: scale(1.06); }
.shReleaseCard--featured {
	border-color: rgba(255, 100, 16, .65);
	box-shadow: 0 20px 44px rgba(0,0,0,.42), 0 0 22px rgba(255,100,16,.12);
}
.shReleaseCard__art {
	overflow: hidden;
	border-radius: 14px 14px 0 0;
	background: linear-gradient(145deg, rgba(36,200,255,.08), rgba(255,100,16,.08));
}
.shReleaseCard__body { display: flex; flex: 1 1 auto; flex-direction: column; padding: 20px; }
.shReleaseCard__body h2 { color: #fff; font-size: 22px; }
.shReleaseCard__body p { color: #9ab1c1; opacity: 1; }
.shReleaseCard__actions { margin-top: auto; padding-top: 14px; }
.shReleaseCard__download {
	border: 1px solid rgba(255, 143, 42, .7);
	background: linear-gradient(135deg, #ff7414, #ff9b36);
	box-shadow: 0 8px 22px rgba(255,100,16,.2);
	transition: transform .18s ease, box-shadow .18s ease;
}
.shReleaseCard__download:hover { transform: translateY(-1px); box-shadow: 0 11px 26px rgba(255,100,16,.3); }

/* Hide the native copyright line on the Latest Releases page. */
body:has(.shReleasesPage) #elCopyright,
body:has(.shReleasesPage) p#elCopyright { display: none !important; }

@media screen and (max-width: 1050px) {
	.shReleaseGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 700px) {
	.shReleasesPage.shSonicInnerPage { margin-top: 12px; padding: 20px 14px 38px; border-radius: 13px; }
	.shReleasesPage__header { align-items: flex-start; flex-direction: column; }
	.shReleaseGrid { grid-template-columns: 1fr; gap: 24px; }
}


/* =========================================================
   Sonic Radio Suite — Alpha 0.7.1.31 global inner pages
   ========================================================= */

/* The releases and schedule controllers now load globalTheme.css. These
   selectors also neutralise IPS wrappers that can otherwise leave a white
   canvas around application-owned content. */
body:has(.shReleasesPage),
body:has(.shSchedulePage) {
	min-height: 100vh;
	background: var(--sh-global-bg, #020811) !important;
}
body:has(.shReleasesPage) #ipsLayout_body,
body:has(.shReleasesPage) #ipsLayout_mainArea,
body:has(.shReleasesPage) #ipsLayout_contentWrapper,
body:has(.shReleasesPage) .ipsLayout_contentArea,
body:has(.shSchedulePage) #ipsLayout_body,
body:has(.shSchedulePage) #ipsLayout_mainArea,
body:has(.shSchedulePage) #ipsLayout_contentWrapper,
body:has(.shSchedulePage) .ipsLayout_contentArea {
	background: transparent !important;
}

.shSchedulePage.shSonicInnerPage {
	position: relative;
	isolation: isolate;
	display: grid;
	gap: 24px;
	max-width: 1480px;
	margin: 24px auto 72px;
	padding: 26px clamp(16px, 3vw, 34px) 54px;
	border: 1px solid rgba(36, 200, 255, .2);
	border-radius: 18px;
	background:
		radial-gradient(circle at 8% 0%, rgba(36, 200, 255, .12), transparent 34%),
		radial-gradient(circle at 92% 8%, rgba(255, 100, 16, .12), transparent 32%),
		linear-gradient(145deg, rgba(4, 13, 25, .97), rgba(8, 20, 35, .94));
	box-shadow: 0 24px 60px rgba(0, 0, 0, .42), inset 0 1px rgba(255,255,255,.025);
	overflow: visible;
}
.shSchedulePage__hero {
	padding: 10px 4px 24px;
	border: 0;
	border-bottom: 1px solid rgba(36, 200, 255, .16);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.shSchedulePage__hero h1 {
	margin: 8px 0 7px;
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 950;
	letter-spacing: -.025em;
	text-shadow: 0 0 22px rgba(36, 200, 255, .18);
}
.shSchedulePage__hero p { color: #93adbf; }
.shSchedulePage__back {
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid rgba(36, 200, 255, .3);
	border-radius: 9px;
	background: rgba(4, 16, 29, .78);
	color: #fff !important;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .045em;
	text-transform: uppercase;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.shSchedulePage__back:hover {
	transform: translateY(-2px);
	border-color: rgba(255, 100, 16, .68);
	box-shadow: 0 0 20px rgba(36, 200, 255, .14), 0 0 24px rgba(255, 100, 16, .12);
}
.shScheduleWeek { gap: 18px; }
.shScheduleDay {
	position: relative;
	isolation: isolate;
	overflow: visible;
	border-color: rgba(36, 200, 255, .24);
	border-radius: 14px;
	background: linear-gradient(150deg, rgba(5, 16, 29, .98), rgba(9, 24, 40, .96));
	box-shadow: 0 18px 38px rgba(0,0,0,.38);
}
.shScheduleDay::before,
.shScheduleDay::after,
.shScheduleShow::before,
.shScheduleShow::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
	border-radius: 50%;
	filter: blur(22px);
	opacity: .5;
	transition: opacity .2s ease, transform .2s ease;
}
.shScheduleDay::before,
.shScheduleShow::before {
	left: -8px;
	top: 7%;
	width: 56%;
	height: 72%;
	background: rgba(36, 200, 255, .38);
}
.shScheduleDay::after,
.shScheduleShow::after {
	right: -8px;
	bottom: 5%;
	width: 56%;
	height: 70%;
	background: rgba(255, 100, 16, .42);
}
.shScheduleDay__header {
	padding: 13px 14px;
	border-radius: 13px 13px 0 0;
	background: rgba(2, 10, 20, .68);
}
.shScheduleDay__shows { gap: 13px; padding: 13px; }
.shScheduleShow {
	position: relative;
	isolation: isolate;
	padding: 10px;
	border-color: rgba(36, 200, 255, .22);
	border-radius: 10px;
	background: linear-gradient(145deg, rgba(7, 20, 35, .98), rgba(11, 29, 47, .96));
	color: #edf8ff !important;
	box-shadow: 0 12px 28px rgba(0, 0, 0, .32);
}
.shScheduleShow::before,
.shScheduleShow::after { filter: blur(16px); opacity: .4; }
.shScheduleShow:hover {
	transform: translateY(-4px);
	border-color: rgba(255, 100, 16, .58);
	box-shadow: 0 18px 36px rgba(0,0,0,.42), 0 0 22px rgba(36,200,255,.12), 0 0 24px rgba(255,100,16,.13);
}
.shScheduleShow:hover::before,
.shScheduleShow:hover::after { opacity: .82; transform: scale(1.06); }
.shScheduleShow__copy strong,
.shScheduleShow__time,
.shScheduleShow__copy h2 { color: #fff; }
.shScheduleShow__copy span { color: #8cecff; }
.shScheduleDay__empty {
	border: 1px dashed rgba(36, 200, 255, .16);
	border-radius: 9px;
	background: rgba(3, 13, 25, .64);
}

@media screen and (max-width: 800px) {
	.shSchedulePage.shSonicInnerPage { margin-top: 12px; padding: 20px 14px 38px; border-radius: 13px; }
}

/* Sonic Chat mention autocomplete and links — isolated 0.7.1.54.7 */
.shNativeChat__composer { position: relative; }
.shMentionPicker {
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(100% + 8px);
	z-index: 50;
	max-height: 260px;
	overflow-y: auto;
	padding: 6px;
	border: 1px solid rgba(36, 200, 255, .42);
	border-radius: 12px;
	background: rgba(7, 13, 24, .98);
	box-shadow: 0 14px 38px rgba(0, 0, 0, .48), 0 0 22px rgba(36, 200, 255, .12);
}
.shMentionPicker[hidden] { display: none !important; }
.shMentionPicker__item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: #fff;
	text-align: left;
	cursor: pointer;
}
.shMentionPicker__item:hover,
.shMentionPicker__item:focus {
	outline: none;
	background: linear-gradient(90deg, rgba(36, 200, 255, .17), rgba(255, 100, 16, .13));
}
.shMentionPicker__item img {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	object-fit: cover;
	background: rgba(255,255,255,.08);
}
.shMentionPicker__item span { font-weight: 700; }


.shMentionLink {
	display: inline;
	padding: 1px 5px 2px;
	border: 1px solid rgba(255, 100, 16, .42);
	border-radius: 6px;
	background: linear-gradient(135deg, rgba(255, 100, 16, .18), rgba(36, 200, 255, .12));
	color: #ff9a5f !important;
	font-weight: 800;
	text-decoration: none !important;
	box-shadow: inset 0 0 12px rgba(255, 100, 16, .06), 0 0 12px rgba(36, 200, 255, .05);
	transition: border-color .16s ease, color .16s ease, background .16s ease, box-shadow .16s ease;
}
.shMentionLink:hover,
.shMentionLink:focus {
	outline: none;
	border-color: rgba(36, 200, 255, .72);
	background: linear-gradient(135deg, rgba(36, 200, 255, .2), rgba(255, 100, 16, .2));
	color: #fff !important;
	box-shadow: 0 0 16px rgba(36, 200, 255, .17), 0 0 14px rgba(255, 100, 16, .13);
}

.shMentionLink.shMentionLink--plain {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #24c8ff !important;
	font-weight: inherit;
	text-decoration: underline !important;
	text-decoration-color: rgba(36, 200, 255, .45) !important;
	text-underline-offset: 2px;
	box-shadow: none;
}
.shMentionLink.shMentionLink--plain:hover,
.shMentionLink.shMentionLink--plain:focus {
	background: transparent;
	border: 0;
	color: #fff !important;
	box-shadow: none;
	text-decoration-color: rgba(255, 100, 16, .75) !important;
}

/* Alpha 0.7.1.54.13 — final native notification-list surface override. */
#elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList {
	color: #eaf7ff !important;
	background-color: #07101c !important;
	background-image:
		radial-gradient(circle at 8% 0%, rgba(36, 200, 255, .10), transparent 36%),
		linear-gradient(180deg, rgba(7, 16, 28, .99), rgba(4, 11, 20, .99)) !important;
	border: 0 !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem {
	color: #eaf7ff !important;
	background-color: rgba(7, 16, 28, .98) !important;
	background-image: linear-gradient(90deg, rgba(36, 200, 255, .055), rgba(255, 100, 16, .025)) !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(36, 200, 255, .10) !important;
	box-shadow: none !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:last-child,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:last-child,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:last-child {
	border-bottom: 0 !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:hover,
#elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:focus-within,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:hover,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:focus-within,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:hover,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent.ipsDataList > li.ipsDataItem:focus-within {
	background-color: rgba(11, 29, 47, .99) !important;
	background-image: linear-gradient(90deg, rgba(36, 200, 255, .14), rgba(255, 100, 16, .09)) !important;
	box-shadow: inset 4px 0 0 #ff6410, inset 0 1px 0 rgba(255, 255, 255, .025) !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_icon,
#elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_icon,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_icon,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main {
	color: #eaf7ff !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main > a,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main > a,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_main > a {
	color: #eaf7ff !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

#elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_title,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_title,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsDataItem_title {
	color: #f4fbff !important;
	text-shadow: 0 0 12px rgba(36, 200, 255, .08);
}

#elFullNotifications_menu.ipsMenu #elNotifyContent .ipsType_light,
#elFullNotifications_menu.ipsMenu #elNotifyContent time,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsType_light,
#ipsLayout_header #elFullNotifications_menu.ipsMenu #elNotifyContent time,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent .ipsType_light,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu #elNotifyContent time {
	color: rgba(153, 190, 218, .88) !important;
}

#elFullNotifications_menu.ipsMenu .ipsMenu_innerContent,
#ipsLayout_header #elFullNotifications_menu.ipsMenu .ipsMenu_innerContent,
body.shIpsCompactHeader #elFullNotifications_menu.ipsMenu .ipsMenu_innerContent {
	background-color: #07101c !important;
	background-image: linear-gradient(180deg, rgba(7, 16, 28, .99), rgba(4, 11, 20, .99)) !important;
	border: 0 !important;
}

/* Alpha 0.7.1.54.16 — alternate chat message row styling for clearer message separation. */
.shNativeChat__messages > .shNativeMessage:not(.shNativeMessage--system):nth-of-type(odd) {
	background: linear-gradient(145deg, rgba(5, 15, 28, .72), rgba(6, 18, 32, .68));
	border-color: rgba(36, 200, 255, .10);
}

.shNativeChat__messages > .shNativeMessage:not(.shNativeMessage--system):nth-of-type(even) {
	background: linear-gradient(145deg, rgba(9, 21, 36, .80), rgba(14, 24, 38, .74));
	border-color: rgba(255, 100, 16, .14);
	box-shadow: inset 3px 0 0 rgba(255, 100, 16, .24);
}

.shNativeChat__messages > .shNativeMessage:not(.shNativeMessage--system):nth-of-type(odd):hover {
	background: linear-gradient(145deg, rgba(8, 22, 38, .88), rgba(10, 24, 40, .84));
	border-color: rgba(36, 200, 255, .24);
}

.shNativeChat__messages > .shNativeMessage:not(.shNativeMessage--system):nth-of-type(even):hover {
	background: linear-gradient(145deg, rgba(14, 28, 45, .92), rgba(18, 31, 47, .88));
	border-color: rgba(255, 122, 40, .32);
	box-shadow: inset 3px 0 0 rgba(255, 100, 16, .46), 0 0 0 1px rgba(255, 122, 40, .06);
}

/* =========================================================
   Sonic Chat temporary image attachments — Alpha 0.7.1.55.1
   ========================================================= */
.shNativeChat__composer .shChatTools__buttons {
	grid-template-columns: repeat(4, 38px);
}

.shChatTools__button--attachment i {
	color: #24c8ff;
}

.shChatAttachments {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 9px;
	margin-top: 10px;
}

.shChatAttachments[hidden] {
	display: none !important;
}

.shChatAttachments__status {
	min-height: 14px;
	padding: 0 3px;
	color: #7ea0b7;
	font-size: 10px;
	line-height: 1.35;
}

.shChatAttachments__status.is-error {
	color: #ff9a73;
}

.shChatAttachments__previews {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 8px;
}

.shChatAttachments__previews[hidden] {
	display: none !important;
}

.shChatAttachmentPreview {
	position: relative;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr) 28px;
	align-items: center;
	gap: 9px;
	min-width: 0;
	padding: 7px;
	border: 1px solid rgba(36, 200, 255, .16);
	border-radius: 9px;
	background: linear-gradient(145deg, rgba(6, 19, 34, .92), rgba(8, 15, 27, .94));
}

.shChatAttachmentPreview > img {
	display: block;
	width: 54px;
	height: 46px;
	object-fit: cover;
	border: 1px solid rgba(36, 200, 255, .20);
	border-radius: 7px;
	background: #020812;
}

.shChatAttachmentPreview > div {
	min-width: 0;
}

.shChatAttachmentPreview strong,
.shChatAttachmentPreview small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shChatAttachmentPreview strong {
	color: #edf9ff;
	font-size: 10px;
}

.shChatAttachmentPreview small {
	margin-top: 3px;
	color: #6f8ca1;
	font-size: 9px;
}

.shChatAttachmentPreview__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1px solid rgba(255, 100, 16, .28);
	border-radius: 7px;
	color: #ff9561;
	background: rgba(255, 100, 16, .07);
	cursor: pointer;
}

.shChatAttachmentPreview__remove:hover,
.shChatAttachmentPreview__remove:focus {
	color: #fff;
	border-color: rgba(255, 100, 16, .62);
	background: rgba(255, 100, 16, .16);
}

.shNativeMessage__attachments {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 280px));
	gap: 9px;
	margin-top: 9px;
}

.shMessageAttachment {
	display: block;
	overflow: hidden;
	min-width: 0;
	color: #dff5ff !important;
	text-decoration: none !important;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 10px;
	background: linear-gradient(145deg, rgba(4, 14, 27, .96), rgba(8, 23, 38, .94));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025), 0 8px 18px rgba(0, 0, 0, .16);
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.shMessageAttachment:hover,
.shMessageAttachment:focus {
	color: #fff !important;
	border-color: rgba(255, 100, 16, .48);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .24), 0 0 16px rgba(255, 100, 16, .09);
	transform: translateY(-1px);
}

.shMessageAttachment > img {
	display: block;
	width: 100%;
	height: min(210px, 28vw);
	min-height: 120px;
	max-height: 210px;
	object-fit: contain;
	border: 0;
	background: #02070d;
}

.shMessageAttachment > span {
	display: block;
	min-width: 0;
	padding: 8px 10px 9px;
	border-top: 1px solid rgba(36, 200, 255, .10);
}

.shMessageAttachment > span strong,
.shMessageAttachment > span small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shMessageAttachment > span strong {
	color: #effaff !important;
	font-size: 10px;
}

.shMessageAttachment > span small {
	margin-top: 3px;
	color: #6f8da2 !important;
	font-size: 9px;
}

.shMessageAttachment--expired {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 68px;
	padding: 11px 12px;
	color: #7892a5 !important;
	border-style: dashed;
	border-color: rgba(122, 150, 169, .20);
	background: linear-gradient(145deg, rgba(8, 14, 23, .86), rgba(10, 13, 20, .90));
	box-shadow: none;
}

.shMessageAttachment--expired:hover {
	transform: none;
	border-color: rgba(122, 150, 169, .28);
	box-shadow: none;
}

.shMessageAttachment--expired > i {
	flex: 0 0 auto;
	color: #ff7a2c;
	font-size: 20px;
}

.shMessageAttachment--expired > span {
	padding: 0;
	border: 0;
}

.shMessageAttachment--expired > span strong {
	color: #a8bdca !important;
}

@media (max-width: 800px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(4, 36px);
	}

	.shNativeMessage__attachments {
		grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	}
}

@media (max-width: 520px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(4, 34px);
	}


	.shChatAttachments__previews,
	.shNativeMessage__attachments {
		grid-template-columns: minmax(0, 1fr);
	}

	.shMessageAttachment > img {
		height: auto;
		min-height: 110px;
		max-height: 230px;
	}
}

/* Alpha 0.7.1.55.3 — custom Sonic media-selector icons and final toolbar order. */
.shChatTools__button img {
	display: block;
	width: 30px;
	height: 30px;
	max-width: none;
	object-fit: contain;
	pointer-events: none;
	filter: drop-shadow(0 0 5px rgba(36, 200, 255, .12));
	transition: transform .18s ease, filter .18s ease;
}

.shChatTools__button:hover img,
.shChatTools__button.is-active img {
	transform: translateY(-1px) scale(1.06);
	filter: drop-shadow(0 0 7px rgba(255, 100, 16, .28));
}

.shChatTools__button[data-chat-tool="smillies"] { order: 1; }
.shChatTools__button[data-chat-tool="emotes"] { order: 2; }
.shChatTools__button[data-chat-tool="giphy"] { order: 3; }
.shChatTools__button[data-chat-tool="audio"] { order: 4; }
.shChatTools__button[data-chat-tool="image"] { order: 5; }

@media (max-width: 520px) {
	.shChatTools__button img {
		width: 27px;
		height: 27px;
	}
}

/* Alpha 0.7.1.55.6 — chat image gallery, native IPS lightbox and mobile display polish. */
.shNativeMessage__attachments--count-1 {
	grid-template-columns: minmax(200px, 430px);
	max-width: 430px;
}

.shNativeMessage__attachments--count-2 {
	grid-template-columns: repeat(2, minmax(0, 280px));
	max-width: 570px;
}

.shMessageAttachment > img {
	width: 100%;
	height: 210px;
	min-height: 0;
	max-height: 300px;
	aspect-ratio: var(--sh-attachment-ratio, 16 / 10);
	object-fit: contain;
}

.shNativeMessage__attachments--count-1 .shMessageAttachment--landscape > img {
	height: 240px;
}

.shNativeMessage__attachments--count-1 .shMessageAttachment--portrait > img {
	height: 300px;
}

.shNativeMessage__attachments--count-1 .shMessageAttachment--square > img {
	height: 270px;
}

.shNativeMessage__attachments--count-2 .shMessageAttachment > img {
	height: 190px;
}

.shMessageAttachment::after {
	content: "\f00e";
	position: absolute;
	right: 9px;
	top: 9px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(36, 200, 255, .26);
	border-radius: 8px;
	color: #eefdff;
	font: normal normal normal 13px/1 FontAwesome;
	background: rgba(2, 10, 18, .78);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .25), 0 0 12px rgba(36, 200, 255, .10);
	opacity: .78;
	transition: opacity .18s ease, transform .18s ease, border-color .18s ease;
	pointer-events: none;
}

.shMessageAttachment {
	position: relative;
}

.shMessageAttachment:hover::after,
.shMessageAttachment:focus::after {
	opacity: 1;
	transform: scale(1.06);
	border-color: rgba(255, 100, 16, .55);
}

.shMessageAttachment--expired::after {
	display: none;
}

/* Isolated Sonic styling for the native IPS lightbox used by chat images. */
.shChatLightbox {
	background: rgba(1, 7, 13, .94) !important;
	backdrop-filter: blur(12px) saturate(125%);
}

.shChatLightbox_imagePanel {
	background:
		radial-gradient(circle at 20% 10%, rgba(36, 200, 255, .10), transparent 38%),
		radial-gradient(circle at 85% 90%, rgba(255, 100, 16, .09), transparent 38%),
		#020912 !important;
	box-shadow: inset 0 0 0 1px rgba(36, 200, 255, .12);
}

.shChatLightbox_image {
	object-fit: contain;
}

.shChatLightbox_close,
.shChatLightbox_next,
.shChatLightbox_prev,
.shChatLightbox_fullSize {
	color: #effbff !important;
	background: rgba(4, 16, 28, .82) !important;
	border: 1px solid rgba(36, 200, 255, .24) !important;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .30), 0 0 14px rgba(36, 200, 255, .08);
}

.shChatLightbox_close:hover,
.shChatLightbox_next:hover,
.shChatLightbox_prev:hover,
.shChatLightbox_fullSize:hover {
	color: #fff !important;
	border-color: rgba(255, 100, 16, .58) !important;
	background: rgba(255, 100, 16, .18) !important;
	box-shadow: 0 8px 22px rgba(0, 0, 0, .34), 0 0 18px rgba(255, 100, 16, .16);
}

.shChatLightbox_meta {
	color: #dff6ff !important;
	background: linear-gradient(180deg, rgba(5, 18, 31, .94), rgba(3, 11, 21, .98)) !important;
	border-top: 1px solid rgba(36, 200, 255, .16);
}

@media (max-width: 800px) {
	.shNativeMessage__attachments--count-1,
	.shNativeMessage__attachments--count-2 {
		grid-template-columns: minmax(0, 1fr);
		max-width: 100%;
	}

	.shNativeMessage__attachments--count-1 .shMessageAttachment > img,
	.shNativeMessage__attachments--count-2 .shMessageAttachment > img {
		height: min(260px, 58vw);
		max-height: 300px;
	}
}

@media (max-width: 520px) {
	.shNativeMessage__attachments--count-1 .shMessageAttachment > img,
	.shNativeMessage__attachments--count-2 .shMessageAttachment > img {
		height: min(240px, 66vw);
		max-height: 260px;
	}
}

/* Alpha 0.7.1.55.7 — retain IPS's native lightbox class structure and theme it on Sonic Chat pages. */
body.shRadioChatPage .ipsLightbox {
	background:
		radial-gradient(circle at 18% 12%, rgba(36, 200, 255, .10), transparent 36%),
		radial-gradient(circle at 84% 88%, rgba(255, 100, 16, .09), transparent 38%),
		rgba(1, 7, 13, .96) !important;
	border: 1px solid rgba(36, 200, 255, .18);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .72), inset 0 0 0 1px rgba(255, 255, 255, .025) !important;
	backdrop-filter: blur(12px) saturate(125%);
}

body.shRadioChatPage .ipsLightbox_imagePanel {
	background: transparent !important;
}

body.shRadioChatPage .ipsLightbox_image {
	object-fit: contain;
}

body.shRadioChatPage .ipsLightbox_close,
body.shRadioChatPage .ipsLightbox_next,
body.shRadioChatPage .ipsLightbox_prev {
	color: #f2fbff !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .9), 0 0 16px rgba(36, 200, 255, .18) !important;
}

body.shRadioChatPage .ipsLightbox_close:hover,
body.shRadioChatPage .ipsLightbox_next:hover,
body.shRadioChatPage .ipsLightbox_prev:hover {
	color: #ff8a34 !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .9), 0 0 18px rgba(255, 100, 16, .30) !important;
}

body.shRadioChatPage .ipsLightbox_meta {
	color: #e8f8ff !important;
	background: linear-gradient(180deg, rgba(5, 18, 31, .96), rgba(3, 11, 21, .98)) !important;
	border-bottom: 1px solid rgba(36, 200, 255, .15);
}

/* Alpha 0.7.1.55.8 — MP3 attachment selector, preview and inline player. */
.shNativeChat__composer .shChatTools__buttons {
	grid-template-columns: repeat(5, 38px);
}

.shChatAudioAttachments {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	margin-top: 9px;
}

.shChatAudioAttachments[hidden],
.shChatAudioPreview[hidden] {
	display: none !important;
}

.shChatAudioAttachments__status {
	min-height: 14px;
	padding: 0 3px;
	color: #7ea0b7;
	font-size: 10px;
	line-height: 1.35;
}

.shChatAudioAttachments__status.is-error {
	color: #ff9a73;
}

.shChatAudioPreview {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) 30px;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 8px 9px;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 10px;
	background:
		radial-gradient(circle at 8% 50%, rgba(36, 200, 255, .10), transparent 34%),
		linear-gradient(145deg, rgba(6, 19, 34, .95), rgba(9, 15, 28, .97));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}

.shChatAudioPreview__icon,
.shMessageAudioAttachment__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(36, 200, 255, .26);
	border-radius: 10px;
	color: #24c8ff;
	background: linear-gradient(145deg, rgba(36, 200, 255, .12), rgba(255, 100, 16, .09));
	box-shadow: 0 0 14px rgba(36, 200, 255, .10);
}

.shChatAudioPreview > div,
.shMessageAudioAttachment__meta > span:last-child {
	min-width: 0;
}

.shChatAudioPreview strong,
.shChatAudioPreview small,
.shMessageAudioAttachment__meta strong,
.shMessageAudioAttachment__meta small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shChatAudioPreview strong,
.shMessageAudioAttachment__meta strong {
	color: #effaff;
	font-size: 11px;
	font-weight: 800;
}

.shChatAudioPreview small,
.shMessageAudioAttachment__meta small {
	margin-top: 3px;
	color: #7190a6;
	font-size: 9px;
}

.shChatAudioPreview__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid rgba(255, 100, 16, .30);
	border-radius: 8px;
	color: #ff9561;
	background: rgba(255, 100, 16, .08);
	cursor: pointer;
}

.shChatAudioPreview__remove:hover,
.shChatAudioPreview__remove:focus {
	color: #fff;
	border-color: rgba(255, 100, 16, .62);
	background: rgba(255, 100, 16, .17);
}

.shNativeMessage__audioAttachments {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 9px;
	width: min(100%, 680px);
	margin-top: 10px;
}

.shMessageAudioAttachment {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 9px;
	min-width: 0;
	padding: 11px;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 12px;
	background:
		radial-gradient(circle at 8% 18%, rgba(36, 200, 255, .11), transparent 35%),
		radial-gradient(circle at 95% 92%, rgba(255, 100, 16, .08), transparent 35%),
		linear-gradient(145deg, rgba(4, 15, 28, .97), rgba(8, 22, 37, .96));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 8px 20px rgba(0, 0, 0, .18);
}

.shMessageAudioAttachment__meta {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
}

.shMessageAudioAttachment__playerRow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 9px;
}

.shMessageAudioAttachment audio {
	display: block;
	width: 100%;
	min-width: 0;
	height: 38px;
	color-scheme: dark;
	border-radius: 9px;
	background: rgba(2, 9, 17, .88);
}

.shMessageAudioAttachment__download {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 38px;
	padding: 0 13px;
	color: #eefdff !important;
	font-size: 10px;
	font-weight: 800;
	text-decoration: none !important;
	border: 1px solid rgba(255, 100, 16, .34);
	border-radius: 9px;
	background: linear-gradient(180deg, rgba(255, 111, 25, .23), rgba(109, 42, 9, .18));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 0 14px rgba(255, 100, 16, .08);
	transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.shMessageAudioAttachment__download:hover,
.shMessageAudioAttachment__download:focus {
	color: #fff !important;
	border-color: rgba(255, 132, 57, .72);
	background: linear-gradient(180deg, rgba(255, 116, 28, .40), rgba(129, 48, 8, .28));
	box-shadow: 0 0 18px rgba(255, 100, 16, .16), inset 0 1px 0 rgba(255, 255, 255, .06);
	transform: translateY(-1px);
}

.shMessageAudioAttachment--expired {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	min-height: 66px;
	color: #7892a5;
	border-style: dashed;
	border-color: rgba(122, 150, 169, .22);
	background: linear-gradient(145deg, rgba(8, 14, 23, .88), rgba(10, 13, 20, .92));
	box-shadow: none;
}

.shMessageAudioAttachment--expired .shMessageAudioAttachment__icon {
	color: #ff7a2c;
	border-color: rgba(255, 100, 16, .22);
	background: rgba(255, 100, 16, .06);
	box-shadow: none;
}

.shMessageAudioAttachment--expired strong,
.shMessageAudioAttachment--expired small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shMessageAudioAttachment--expired strong {
	color: #a8bdca;
	font-size: 11px;
}

.shMessageAudioAttachment--expired small {
	margin-top: 3px;
	color: #70899b;
	font-size: 9px;
}

@media (max-width: 800px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(5, 36px);
	}
}

@media (max-width: 520px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(5, 32px);
		gap: 3px;
	}

	.shChatTools__button img {
		width: 25px;
		height: 25px;
	}

	.shMessageAudioAttachment__playerRow {
		grid-template-columns: minmax(0, 1fr) 40px;
	}

	.shMessageAudioAttachment__download {
		width: 40px;
		padding: 0;
	}

	.shMessageAudioAttachment__download span {
		display: none;
	}
}

/* Alpha 0.7.1.55.12 — SoundCloud URL selector and compact chat widget. */
/* Alpha 0.7.1.55.13 — Sonic-styled SoundCloud URL field with readable text in all browser states. */
.shNativeChat__composer .shChatTools__buttons {
	grid-template-columns: repeat(6, 38px);
}

.shChatTools__button[data-chat-tool="soundcloud"] { order: 5; }
.shChatTools__button[data-chat-tool="image"] { order: 6; }

.shChatTools__button--soundcloud.has-selection {
	border-color: rgba(255, 101, 0, .62);
	background: rgba(255, 101, 0, .13);
	box-shadow: 0 0 15px rgba(255, 101, 0, .10);
}

.shChatSoundCloud {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 7px;
	margin-top: 9px;
}

.shChatSoundCloud[hidden],
.shChatSoundCloud__editor[hidden],
.shChatSoundCloudPreview[hidden] {
	display: none !important;
}

.shChatSoundCloud__editor {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 7px;
	padding: 8px;
	border: 1px solid rgba(255, 101, 0, .24);
	border-radius: 10px;
	background:
		radial-gradient(circle at 8% 50%, rgba(255, 101, 0, .10), transparent 34%),
		linear-gradient(145deg, rgba(7, 17, 29, .96), rgba(10, 15, 25, .98));
}

.shNativeChat__composer input[type="url"].shChatSoundCloud__input {
	width: 100%;
	min-width: 0;
	height: 38px;
	padding: 0 12px !important;
	color: #eef9ff !important;
	-webkit-text-fill-color: #eef9ff !important;
	caret-color: #ff791f;
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	line-height: 38px;
	border: 1px solid rgba(36, 200, 255, .28) !important;
	border-radius: 8px !important;
	outline: 0 !important;
	background: linear-gradient(145deg, rgba(3, 12, 24, .98), rgba(8, 26, 42, .96)) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035), 0 0 0 1px rgba(0, 0, 0, .18) !important;
	opacity: 1;
	transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.shNativeChat__composer input[type="url"].shChatSoundCloud__input::placeholder {
	color: #86a7ba !important;
	-webkit-text-fill-color: #86a7ba !important;
	opacity: 1;
}

.shNativeChat__composer input[type="url"].shChatSoundCloud__input:hover {
	border-color: rgba(36, 200, 255, .46) !important;
}

.shNativeChat__composer input[type="url"].shChatSoundCloud__input:focus {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	border-color: rgba(255, 105, 24, .78) !important;
	background: linear-gradient(145deg, rgba(4, 15, 28, .99), rgba(10, 30, 48, .98)) !important;
	box-shadow: 0 0 0 2px rgba(255, 100, 16, .12), 0 0 20px rgba(255, 100, 16, .08) !important;
}

.shNativeChat__composer input[type="url"].shChatSoundCloud__input:-webkit-autofill,
.shNativeChat__composer input[type="url"].shChatSoundCloud__input:-webkit-autofill:hover,
.shNativeChat__composer input[type="url"].shChatSoundCloud__input:-webkit-autofill:focus {
	-webkit-text-fill-color: #ffffff !important;
	caret-color: #ff791f;
	-webkit-box-shadow: 0 0 0 1000px #07192a inset !important;
	box-shadow: 0 0 0 1000px #07192a inset !important;
	border-color: rgba(255, 105, 24, .72) !important;
}

.shChatSoundCloud__add,
.shChatSoundCloud__cancel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	padding: 0 12px;
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	border: 1px solid rgba(255, 101, 0, .34);
	border-radius: 8px;
	background: linear-gradient(180deg, rgba(255, 111, 25, .30), rgba(112, 42, 8, .22));
	cursor: pointer;
}

.shChatSoundCloud__add {
	gap: 6px;
}

.shChatSoundCloud__cancel {
	width: 36px;
	padding: 0;
	color: #9cb4c3;
	border-color: rgba(122, 150, 169, .22);
	background: rgba(7, 15, 25, .82);
}

.shChatSoundCloud__add:hover,
.shChatSoundCloud__add:focus {
	border-color: rgba(255, 137, 65, .72);
	background: linear-gradient(180deg, rgba(255, 119, 31, .48), rgba(132, 48, 7, .34));
}

.shChatSoundCloud__cancel:hover,
.shChatSoundCloud__cancel:focus {
	color: #fff;
	border-color: rgba(36, 200, 255, .40);
}

.shChatSoundCloud__status {
	min-height: 14px;
	padding: 0 3px;
	color: #7ea0b7;
	font-size: 10px;
	line-height: 1.35;
}

.shChatSoundCloud__status.is-error {
	color: #ff9a73;
}

.shChatSoundCloudPreview {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) 30px;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 8px 9px;
	border: 1px solid rgba(255, 101, 0, .24);
	border-radius: 10px;
	background:
		radial-gradient(circle at 8% 50%, rgba(255, 101, 0, .13), transparent 34%),
		linear-gradient(145deg, rgba(7, 18, 30, .96), rgba(10, 15, 25, .98));
}

.shChatSoundCloudPreview__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: #ff6500;
	font-size: 20px;
	border: 1px solid rgba(255, 101, 0, .30);
	border-radius: 10px;
	background: rgba(255, 101, 0, .08);
	box-shadow: 0 0 14px rgba(255, 101, 0, .10);
}

.shChatSoundCloudPreview > div {
	min-width: 0;
}

.shChatSoundCloudPreview strong,
.shChatSoundCloudPreview small {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shChatSoundCloudPreview strong {
	color: #effaff;
	font-size: 11px;
}

.shChatSoundCloudPreview small {
	margin-top: 3px;
	color: #7793a5;
	font-size: 9px;
}

.shChatSoundCloudPreview__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	color: #ff9561;
	border: 1px solid rgba(255, 101, 0, .30);
	border-radius: 8px;
	background: rgba(255, 101, 0, .08);
	cursor: pointer;
}

.shChatSoundCloudPreview__remove:hover,
.shChatSoundCloudPreview__remove:focus {
	color: #fff;
	border-color: rgba(255, 132, 57, .68);
	background: rgba(255, 101, 0, .17);
}

.shNativeMessage__soundCloud {
	width: min(100%, 680px);
	margin-top: 10px;
}

.shMessageSoundCloud {
	overflow: hidden;
	border: 1px solid rgba(255, 101, 0, .25);
	border-radius: 12px;
	background:
		radial-gradient(circle at 7% 15%, rgba(255, 101, 0, .12), transparent 35%),
		linear-gradient(145deg, rgba(5, 15, 27, .98), rgba(9, 19, 31, .97));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03), 0 8px 20px rgba(0, 0, 0, .18);
}

.shMessageSoundCloud__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 36px;
	padding: 7px 10px;
	border-bottom: 1px solid rgba(255, 101, 0, .14);
}

.shMessageSoundCloud__brand,
.shMessageSoundCloud__open {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.shMessageSoundCloud__brand {
	color: #f4fbff;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.shMessageSoundCloud__brand i {
	color: #ff6500;
	font-size: 18px;
}

.shMessageSoundCloud__open {
	color: #8eabba !important;
	font-size: 9px;
	font-weight: 800;
	text-decoration: none !important;
	text-transform: uppercase;
}

.shMessageSoundCloud__open:hover,
.shMessageSoundCloud__open:focus {
	color: #ff9a5b !important;
}

.shMessageSoundCloud__player {
	display: block;
	width: 100%;
	height: 122px;
	border: 0;
	background: #111;
}

@media (max-width: 800px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(6, 34px);
		gap: 4px;
	}
}

@media (max-width: 520px) {
	.shNativeChat__composer .shChatTools__buttons {
		grid-template-columns: repeat(6, 29px);
		gap: 2px;
	}

	.shNativeChat__composer .shChatTools__button {
		width: 29px;
	}

	.shNativeChat__composer .shChatTools__button img {
		width: 23px;
		height: 23px;
	}

	.shChatSoundCloud__editor {
		grid-template-columns: minmax(0, 1fr) 36px;
	}

	.shChatSoundCloud__add {
		width: 36px;
		padding: 0;
	}

	.shChatSoundCloud__add span {
		display: none;
	}

	.shChatSoundCloud__cancel {
		grid-column: 2;
	}

	.shMessageSoundCloud__open span {
		display: none;
	}
}

/* Alpha 0.7.1.56.10 — public DJ booking schedule and Resident DJs roster */
.shPublicDjHub {
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .22);
	border-radius: 14px;
	background:
		radial-gradient(circle at 88% 0%, rgba(255, 100, 16, .10), transparent 30%),
		linear-gradient(145deg, rgba(4, 13, 25, .98), rgba(8, 22, 38, .96));
	box-shadow: 0 20px 52px rgba(0, 0, 0, .42), 0 0 26px rgba(36, 200, 255, .06);
}

.shPublicDjHub__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	padding: 20px 22px;
	border-bottom: 1px solid rgba(36, 200, 255, .14);
	background: linear-gradient(90deg, rgba(4, 15, 28, .96), rgba(9, 27, 45, .86));
}

.shPublicDjHub__header h2 {
	margin: 5px 0 0;
	font-size: 22px;
	font-weight: 900;
	letter-spacing: -.02em;
	text-transform: uppercase;
	color: #fff;
}

.shPublicDjHub__header p {
	margin: 6px 0 0;
	font-size: 11px;
	color: #8199ad;
}

.shPublicDjHub__scheduleLink {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	flex: 0 0 auto;
	min-height: 40px;
	padding: 0 15px;
	border: 1px solid rgba(255, 100, 16, .34);
	border-radius: 8px;
	background: rgba(255, 100, 16, .08);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .07em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #ffad77 !important;
	transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.shPublicDjHub__scheduleLink:hover,
.shPublicDjHub__scheduleLink:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(255, 143, 79, .72);
	background: rgba(255, 100, 16, .15);
	color: #fff !important;
}

.shPublicDjHub__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.75fr) minmax(290px, .75fr);
	gap: 12px;
	padding: 12px;
}

.shPublicDjWeek,
.shResidentDjs {
	min-width: 0;
	border: 1px solid rgba(36, 200, 255, .12);
	border-radius: 10px;
	background: rgba(2, 10, 20, .72);
}

.shPublicDjWeek__header,
.shResidentDjs__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 15px;
	border-bottom: 1px solid rgba(36, 200, 255, .11);
	background: rgba(7, 22, 38, .78);
}

.shPublicDjWeek__header span,
.shResidentDjs__header span {
	display: block;
	margin-bottom: 3px;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #6f899f;
}

.shPublicDjWeek__header strong,
.shResidentDjs__header strong {
	display: block;
	font-size: 15px;
	color: #f2fbff;
}

.shPublicDjWeek__header small,
.shResidentDjs__header small {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #83dffb;
}

.shPublicDjWeek__days {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	padding: 10px;
}

.shPublicDjDay {
	min-width: 0;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .065);
	border-radius: 8px;
	background: rgba(4, 14, 26, .72);
}

.shPublicDjDay.is-today {
	border-color: rgba(36, 200, 255, .30);
	box-shadow: 0 0 18px rgba(36, 200, 255, .07);
}

.shPublicDjDay > header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 9px;
	padding: 9px 10px;
	border-bottom: 1px solid rgba(255, 255, 255, .055);
	background: rgba(255, 255, 255, .025);
}

.shPublicDjDay > header > div {
	display: flex;
	align-items: baseline;
	gap: 7px;
}

.shPublicDjDay > header strong {
	font-size: 11px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #eaf8ff;
}

.shPublicDjDay > header span {
	font-size: 9px;
	color: #70889c;
}

.shPublicDjDay > header em {
	padding: 3px 6px;
	border-radius: 999px;
	background: rgba(36, 200, 255, .11);
	font-size: 7px;
	font-style: normal;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #75e5ff;
}

.shPublicDjDay__shows {
	display: grid;
	gap: 6px;
	padding: 7px;
}

.shPublicDjDay__empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 43px;
	border: 1px dashed rgba(255, 255, 255, .06);
	border-radius: 6px;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #50697d;
}

.shPublicDjShow {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 9px;
	min-width: 0;
	padding: 8px 9px;
	border: 1px solid rgba(36, 200, 255, .09);
	border-left: 3px solid rgba(255, 100, 16, .72);
	border-radius: 6px;
	background: rgba(3, 12, 22, .82);
}

.shPublicDjShow.is-live {
	border-color: rgba(67, 241, 165, .26);
	border-left-color: #43f1a5;
	background: rgba(20, 72, 55, .18);
}

.shPublicDjShow.is-past {
	opacity: .58;
}

.shPublicDjShow__time {
	display: grid;
	gap: 2px;
	min-width: 72px;
}

.shPublicDjShow__time span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 7px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #74f1b8;
}

.shPublicDjShow__time span i {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #43f1a5;
	box-shadow: 0 0 8px #43f1a5;
}

.shPublicDjShow__time strong {
	font-size: 9px;
	white-space: nowrap;
	color: #ff9e61;
}

.shPublicDjShow__copy {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.shPublicDjShow__copy strong,
.shPublicDjShow__copy span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.shPublicDjShow__copy strong {
	font-size: 10px;
	color: #f3fbff;
}

.shPublicDjShow__copy span {
	font-size: 9px;
	font-weight: 800;
	color: #82e9ff;
}

.shPublicDjShow > a {
	display: grid;
	place-items: center;
	width: 27px;
	height: 27px;
	border: 1px solid rgba(36, 200, 255, .14);
	border-radius: 6px;
	background: rgba(36, 200, 255, .055);
	font-size: 10px;
	text-decoration: none !important;
	color: #86eaff !important;
}

.shPublicDjShow > a:hover {
	border-color: rgba(36, 200, 255, .42);
	background: rgba(36, 200, 255, .13);
	color: #fff !important;
}

.shResidentDjs__list {
	display: grid;
	gap: 8px;
	padding: 10px;
}

.shResidentDj {
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .10);
	border-radius: 8px;
	background: rgba(4, 14, 26, .74);
}

.shResidentDj__profile {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	min-width: 0;
	padding: 9px;
	text-decoration: none !important;
}

.shResidentDj__profile:hover {
	background: rgba(36, 200, 255, .055);
}

.shResidentDj__avatar {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .34);
	border-radius: 10px;
	background: linear-gradient(145deg, rgba(36, 200, 255, .18), rgba(255, 100, 16, .12));
	font-size: 15px;
	font-weight: 900;
	color: #fff;
}

.shResidentDj__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.shResidentDj__name {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.shResidentDj__name small {
	font-size: 7px;
	font-weight: 900;
	letter-spacing: .10em;
	text-transform: uppercase;
	color: #667f94;
}

.shResidentDj__name strong {
	overflow: hidden;
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #eefaff;
}

.shResidentDj__profile > i {
	color: #668398;
}

.shResidentDj__socials {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 5px;
	padding: 7px 9px 9px 67px;
	border-top: 1px solid rgba(255, 255, 255, .045);
}

.shResidentDj__socials a {
	display: grid;
	place-items: center;
	width: 27px;
	height: 27px;
	border: 1px solid rgba(36, 200, 255, .14);
	border-radius: 6px;
	background: rgba(36, 200, 255, .055);
	font-size: 11px;
	text-decoration: none !important;
	color: #8eeaff !important;
}

.shResidentDj__socials a:hover,
.shResidentDj__socials a:focus-visible {
	border-color: rgba(255, 100, 16, .50);
	background: rgba(255, 100, 16, .12);
	color: #fff !important;
}

.shResidentDjs__empty {
	padding: 28px 16px;
	font-size: 10px;
	line-height: 1.6;
	text-align: center;
	color: #718a9e;
}

@media (max-width: 1050px) {
	.shPublicDjHub__grid {
		grid-template-columns: minmax(0, 1.45fr) minmax(270px, .75fr);
	}

	.shPublicDjWeek__days {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 800px) {
	.shPublicDjHub__grid {
		grid-template-columns: 1fr;
	}

	.shResidentDjs__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.shPublicDjHub__header {
		align-items: flex-start;
		flex-direction: column;
		padding: 17px;
	}

	.shPublicDjHub__scheduleLink {
		width: 100%;
	}

	.shPublicDjHub__grid {
		padding: 8px;
	}

	.shPublicDjWeek__header,
	.shResidentDjs__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.shResidentDjs__list {
		grid-template-columns: 1fr;
	}

	.shPublicDjShow {
		grid-template-columns: 1fr auto;
	}

	.shPublicDjShow__time {
		grid-column: 1 / -1;
		grid-template-columns: auto 1fr;
		align-items: center;
	}
}

/* Alpha 0.7.1.56.12 — readable public weekly schedule cards */
.shPublicDjWeek__days {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	padding: 14px;
}

.shPublicDjDay {
	display: flex;
	flex-direction: column;
	min-height: 224px;
	border-color: rgba(36, 200, 255, .12);
	border-radius: 11px;
	background:
		linear-gradient(155deg, rgba(8, 23, 39, .96), rgba(2, 10, 20, .96));
	box-shadow: 0 12px 28px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .025);
}

.shPublicDjDay.is-today {
	border-color: rgba(36, 200, 255, .48);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .28), 0 0 24px rgba(36, 200, 255, .10), inset 0 1px 0 rgba(255, 255, 255, .035);
}

.shPublicDjDay > header {
	min-height: 48px;
	padding: 11px 12px;
	background: linear-gradient(90deg, rgba(9, 28, 47, .96), rgba(4, 15, 28, .96));
}

.shPublicDjDay > header strong {
	font-size: 12px;
	letter-spacing: .065em;
}

.shPublicDjDay > header span {
	font-size: 10px;
}

.shPublicDjDay > header em {
	padding: 4px 7px;
	font-size: 8px;
	box-shadow: 0 0 14px rgba(36, 200, 255, .10);
}

.shPublicDjDay__shows {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	align-content: stretch;
	flex: 1 1 auto;
	gap: 9px;
	padding: 10px;
}

.shPublicDjShow {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	min-height: 154px;
	padding: 12px;
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .13);
	border-top: 3px solid rgba(255, 100, 16, .82);
	border-left-width: 1px;
	border-radius: 10px;
	background:
		radial-gradient(circle at 100% 0%, rgba(255, 100, 16, .10), transparent 38%),
		linear-gradient(150deg, rgba(5, 17, 30, .98), rgba(2, 9, 18, .98));
	box-shadow: 0 10px 24px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .025);
}

.shPublicDjShow.is-live {
	border-color: rgba(67, 241, 165, .30);
	border-top-color: #43f1a5;
	background:
		radial-gradient(circle at 100% 0%, rgba(67, 241, 165, .15), transparent 42%),
		linear-gradient(150deg, rgba(7, 34, 31, .98), rgba(2, 15, 20, .98));
	box-shadow: 0 12px 28px rgba(0, 0, 0, .26), 0 0 22px rgba(67, 241, 165, .08);
}

.shPublicDjShow.is-past {
	opacity: .68;
	filter: saturate(.72);
}

.shPublicDjShow__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
}

.shPublicDjShow__avatar {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 62px;
	height: 62px;
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .38);
	border-radius: 11px;
	background: linear-gradient(145deg, rgba(36, 200, 255, .20), rgba(255, 100, 16, .15));
	box-shadow: 0 8px 18px rgba(0, 0, 0, .26), 0 0 18px rgba(36, 200, 255, .07);
	font-size: 18px;
	font-weight: 900;
	text-decoration: none !important;
	color: #fff !important;
}

.shPublicDjShow__avatar:hover,
.shPublicDjShow__avatar:focus-visible {
	border-color: rgba(255, 100, 16, .72);
	box-shadow: 0 8px 22px rgba(0, 0, 0, .30), 0 0 20px rgba(255, 100, 16, .13);
}

.shPublicDjShow__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.shPublicDjShow__status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 25px;
	padding: 0 8px;
	border: 1px solid rgba(255, 100, 16, .22);
	border-radius: 999px;
	background: rgba(255, 100, 16, .08);
	font-size: 7px;
	font-weight: 900;
	letter-spacing: .075em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #ffad79;
}

.shPublicDjShow.is-live .shPublicDjShow__status {
	border-color: rgba(67, 241, 165, .32);
	background: rgba(67, 241, 165, .09);
	color: #8ff7c7;
}

.shPublicDjShow.is-past .shPublicDjShow__status {
	border-color: rgba(255, 255, 255, .10);
	background: rgba(255, 255, 255, .045);
	color: #8ca0b1;
}

.shPublicDjShow__status i {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #43f1a5;
	box-shadow: 0 0 9px #43f1a5;
}

.shPublicDjShow__copy {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 5px;
	min-width: 0;
	margin-top: 12px;
}

.shPublicDjShow__copy small {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .025em;
	color: #ff9f63;
}

.shPublicDjShow.is-live .shPublicDjShow__copy small {
	color: #8ff7c7;
}

.shPublicDjShow__copy > strong {
	display: -webkit-box;
	overflow: hidden;
	font-size: 14px;
	line-height: 1.25;
	white-space: normal;
	color: #f5fbff;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.shPublicDjShow__copy > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	margin-top: auto;
	overflow: hidden;
	font-size: 10px;
	font-weight: 800;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-decoration: none !important;
	color: #82e9ff !important;
}

.shPublicDjShow__copy > a:hover,
.shPublicDjShow__copy > a:focus-visible {
	color: #fff !important;
}

.shPublicDjDay__empty {
	display: grid;
	place-items: center;
	align-content: center;
	gap: 6px;
	min-height: 148px;
	padding: 16px;
	border-color: rgba(36, 200, 255, .09);
	background: rgba(2, 10, 19, .40);
	text-align: center;
}

.shPublicDjDay__empty i {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-bottom: 2px;
	border: 1px solid rgba(36, 200, 255, .10);
	border-radius: 10px;
	background: rgba(36, 200, 255, .045);
	font-size: 14px;
	color: #48697e;
}

.shPublicDjDay__empty span {
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #5f788c;
}

.shPublicDjDay__empty small {
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: #435c70;
}

@media (max-width: 1250px) {
	.shPublicDjWeek__days {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 800px) {
	.shPublicDjWeek__days {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.shPublicDjWeek__days {
		grid-template-columns: 1fr;
		gap: 9px;
		padding: 9px;
	}

	.shPublicDjDay {
		min-height: 0;
	}

	.shPublicDjDay__shows {
		grid-template-columns: 1fr;
	}

	.shPublicDjShow {
		min-height: 154px;
	}
}

/* Alpha 0.7.1.56.13 — multiple-show day slider */
.shPublicDjDay__shows--slider {
	grid-template-columns: 1fr;
}

.shPublicDjSlider__controls {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 34px;
	padding: 0 2px 2px;
}

.shPublicDjDay__shows--slider.is-slider-ready .shPublicDjSlider__controls {
	display: flex;
}

.shPublicDjSlider__controls button {
	display: grid;
	place-items: center;
	width: 34px;
	height: 30px;
	padding: 0;
	border: 1px solid rgba(36, 200, 255, .24);
	border-radius: 8px;
	background: linear-gradient(145deg, rgba(8, 28, 47, .96), rgba(3, 13, 24, .96));
	box-shadow: 0 6px 15px rgba(0, 0, 0, .24);
	font-size: 15px;
	color: #8beaff;
	cursor: pointer;
	transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

.shPublicDjSlider__controls button:hover,
.shPublicDjSlider__controls button:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(255, 100, 16, .62);
	background: linear-gradient(145deg, rgba(255, 100, 16, .20), rgba(6, 20, 33, .98));
	color: #fff;
	outline: none;
}

.shPublicDjSlider__controls span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 66px;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .08em;
	color: #7793a8;
}

.shPublicDjSlider__controls span b:first-child {
	color: #ff9f63;
}

.shPublicDjSlider__controls span i {
	font-style: normal;
	color: #476174;
}

.shPublicDjDay__shows--slider.is-slider-ready .shPublicDjShow {
	display: none;
	animation: shPublicDjSlideIn .2s ease both;
}

.shPublicDjDay__shows--slider.is-slider-ready .shPublicDjShow.is-active {
	display: flex;
}

.shPublicDjDay__shows--slider:focus-visible {
	outline: 1px solid rgba(36, 200, 255, .42);
	outline-offset: 3px;
	border-radius: 9px;
}

@keyframes shPublicDjSlideIn {
	from { opacity: 0; transform: translateX(9px); }
	to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
	.shPublicDjDay__shows--slider.is-slider-ready .shPublicDjShow {
		animation: none;
	}
}

/* Alpha 0.7.1.56.25 — final DJ Portal schedule integration */
.shSchedulePage__weekNav {
	display: grid;
	grid-template-columns: auto minmax(180px, 1fr) auto auto;
	align-items: center;
	gap: 9px;
	padding: 10px;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 11px;
	background: linear-gradient(145deg, rgba(6, 19, 34, .98), rgba(2, 10, 19, .98));
	box-shadow: 0 12px 30px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .025);
}

.shSchedulePage__weekNav > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 38px;
	padding: 0 13px;
	border: 1px solid rgba(36, 200, 255, .20);
	border-radius: 8px;
	background: rgba(36, 200, 255, .055);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .055em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #94ecff !important;
}

.shSchedulePage__weekNav > a:hover,
.shSchedulePage__weekNav > a:focus-visible {
	border-color: rgba(255, 100, 16, .62);
	background: rgba(255, 100, 16, .10);
	color: #fff !important;
	outline: none;
}

.shSchedulePage__weekNav > a.is-current {
	border-color: rgba(67, 241, 165, .28);
	background: rgba(67, 241, 165, .07);
	color: #92f6c9 !important;
}

.shSchedulePage__weekNav > div {
	display: grid;
	gap: 2px;
	min-width: 0;
	text-align: center;
}

.shSchedulePage__weekNav > div small {
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: #658196;
}

.shSchedulePage__weekNav > div strong {
	overflow: hidden;
	font-size: 14px;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #f2fbff;
}

.shSchedulePage__portalWeek {
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 13px;
	overflow: hidden;
	background: rgba(2, 10, 19, .78);
	box-shadow: 0 18px 44px rgba(0, 0, 0, .30);
}

.shSchedulePage__portalWeek .shPublicDjWeek__days {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.shScheduleShow__notes {
	display: -webkit-box;
	margin: 2px 0 0;
	overflow: hidden;
	font-size: 9px;
	line-height: 1.45;
	color: #708ca1;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

@media (max-width: 1260px) {
	.shSchedulePage__portalWeek .shPublicDjWeek__days {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.shSchedulePage__weekNav {
		grid-template-columns: repeat(3, 1fr);
	}

	.shSchedulePage__weekNav > div {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.shSchedulePage__portalWeek .shPublicDjWeek__days {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.shSchedulePage__weekNav {
		grid-template-columns: repeat(3, 1fr);
		gap: 6px;
	}

	.shSchedulePage__weekNav > a {
		min-width: 0;
		padding: 0 8px;
		font-size: 8px;
	}

	.shSchedulePage__portalWeek .shPublicDjWeek__days {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Alpha 0.7.1.56.27 — New Music four-card grid and featured players
   ========================================================= */
.shPortalModule--releases .shNewMusicGrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.shNewMusicCard {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 11px;
	background: linear-gradient(150deg, rgba(4, 15, 28, .96), rgba(8, 24, 40, .94));
	box-shadow: 0 10px 24px rgba(0, 0, 0, .24);
}
.shNewMusicCard--mp3 { border-color: rgba(255, 100, 16, .28); }
.shNewMusicCard__header {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 10px;
}
.shNewMusicCard__art {
	display: grid;
	width: 52px;
	height: 52px;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(36, 200, 255, .18);
	border-radius: 9px;
	background: rgba(1, 8, 17, .86);
	color: var(--sh-orange);
	font-size: 20px;
}
.shNewMusicCard__art img { width: 100%; height: 100%; object-fit: cover; }
.shNewMusicCard__copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.shNewMusicCard__copy small,
.shNewMusicCard__copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shNewMusicCard__copy small { color: #8fdfff; font-size: 10px; font-weight: 800; }
.shNewMusicCard__copy strong { color: #fff; font-size: 13px; line-height: 1.25; }
.shNewMusicCard__source {
	align-self: start;
	padding: 5px 7px;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 999px;
	background: rgba(255, 255, 255, .04);
	color: #8da9bc;
	font-size: 8px;
	font-weight: 900;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.shNewMusicCard--mp3 .shNewMusicCard__source { color: #ff9b5d; border-color: rgba(255,100,16,.22); }
.shNewMusicCard__player { margin: 0 10px 10px; }
.shNewMusicCard__player.shSoundCloudPlayer { border-radius: 8px; }
.shNewMusicCard__player.shSoundCloudPlayer iframe { height: 120px; min-height: 120px; }
.shNewMusicCard__player--mp3 {
	padding: 9px;
	border: 1px solid rgba(255, 100, 16, .18);
	border-radius: 8px;
	background: rgba(1, 8, 17, .9);
}
.shNewMusicCard audio,
.shFeaturedMusic audio,
.shReleaseCard audio { width: 100%; min-width: 0; accent-color: var(--sh-orange); }
.shNewMusicCard__footer { margin-top: auto; padding: 0 10px 10px; }
.shNewMusicCard__footer a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 34px;
	border: 1px solid rgba(36, 200, 255, .2);
	border-radius: 7px;
	background: rgba(36, 200, 255, .06);
	color: #dff7ff !important;
	font-size: 9px;
	font-weight: 900;
	text-decoration: none !important;
	text-transform: uppercase;
}
.shNewMusicCard__footer a:hover { border-color: rgba(255,100,16,.54); background: rgba(255,100,16,.09); }

.shFeaturedMusic { display: flex; min-width: 0; height: 100%; flex-direction: column; gap: 13px; }
.shFeaturedMusic__header { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 14px; align-items: center; }
.shFeaturedMusic__art {
	display: grid;
	width: 88px;
	height: 88px;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(255,100,16,.35);
	border-radius: 12px;
	background: rgba(2,10,20,.9);
	color: var(--sh-orange);
	font-size: 28px;
	box-shadow: 0 0 22px rgba(255,100,16,.1);
}
.shFeaturedMusic__art img { width: 100%; height: 100%; object-fit: cover; }
.shFeaturedMusic__copy { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.shFeaturedMusic__copy span { color: var(--sh-orange); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.shFeaturedMusic__copy strong { color: #fff; font-size: clamp(19px,1.7vw,25px); line-height: 1.15; }
.shFeaturedMusic__copy small { color: #9db5c7; font-size: 12px; }
.shFeaturedMusic__player { width: 100%; margin: 0; overflow: hidden; border-radius: 11px; }
.shSoundCloudPlayer--featured iframe { height: 300px !important; min-height: 300px !important; }
.shFeaturedMusic__player--mp3 {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: 210px;
	place-items: end stretch;
	overflow: hidden;
	border: 1px solid rgba(255,100,16,.28);
	background: linear-gradient(145deg, rgba(2,10,20,.35), rgba(12,20,32,.94)), var(--sh-featured-art, none) center/cover;
}
.shFeaturedMusic__player--mp3::before { content:""; position:absolute; inset:0; z-index:-1; backdrop-filter: blur(8px); background: linear-gradient(180deg,rgba(2,8,17,.2),rgba(2,8,17,.94)); }
.shFeaturedMusic__player--mp3 > div { display:grid; gap:10px; padding:18px; }
.shFeaturedMusic__player--mp3 i { color:var(--sh-orange); font-size:28px; }
.shFeaturedMusic__player--mp3 strong { color:#fff; font-size:16px; }
.shFeaturedMusic__button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	margin-top: auto;
	border: 1px solid rgba(255,154,82,.72);
	border-radius: 9px;
	background: linear-gradient(135deg,#e84900,#ff7516);
	color: #fff !important;
	font-size: 10px;
	font-weight: 950;
	text-decoration: none !important;
	text-transform: uppercase;
	box-shadow: 0 8px 22px rgba(255,100,16,.2);
}

.shReleaseCard__mp3Player { margin: 12px 0 4px; padding: 10px; border: 1px solid rgba(255,100,16,.2); border-radius: 9px; background: rgba(2,10,20,.88); }

@media (max-width: 1180px) {
	.shPortalModule--releases .shNewMusicGrid { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.shPortalModule--releases .shNewMusicGrid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
	.shPortalModule--releases .shNewMusicGrid { grid-template-columns: 1fr; }
	.shNewMusicCard__header { grid-template-columns: 48px minmax(0,1fr); }
	.shNewMusicCard__art { width:48px; height:48px; }
	.shNewMusicCard__source { grid-column:2; justify-self:start; }
	.shSoundCloudPlayer--featured iframe { height: 240px !important; min-height: 240px !important; }
}

/* Main homepage dock uses the same compact/expanded treatment as the
   site-wide player while preserving the dedicated Radio & Chat layout. */
.shHomeDockToggle {
	position: fixed;
	right: clamp(12px, 3vw, 44px);
	bottom: 58px;
	z-index: 10002;
	display: inline-flex;
	min-width: 190px;
	height: 25px;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 0 18px;
	border: 2px solid var(--sh-orange, #ff6410);
	border-bottom: 0;
	border-radius: 15px 15px 0 0;
	background: linear-gradient(180deg, rgba(35, 12, 4, .99), rgba(17, 8, 4, .99));
	box-shadow: 0 -4px 14px rgba(255, 100, 16, .15);
	color: var(--sh-orange, #ff6410);
	font-size: 9px;
	font-weight: 950;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: bottom .22s ease;
}
.shHomeDockToggle:hover,
.shHomeDockToggle:focus-visible { color:#fff; background:linear-gradient(180deg,rgba(92,28,4,.99),rgba(31,11,3,.99)); outline:none; }
.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) .shHomeDockToggle { bottom: 126px; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) { padding-bottom: 58px !important; }
.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) { padding-bottom: 156px !important; }

.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer {
	display: grid !important;
	grid-template-columns: minmax(145px,.75fr) minmax(260px,1.55fr) minmax(330px,1.25fr) !important;
	grid-template-rows: 58px !important;
	grid-template-areas: none !important;
	gap: clamp(12px,2vw,34px) !important;
	align-items: center !important;
	min-height: 58px !important;
	height: 58px !important;
	padding: 0 clamp(18px,8vw,170px) !important;
	overflow: visible !important;
	border-top: 3px solid transparent !important;
	border-image: linear-gradient(90deg,var(--sh-blue,#24c8ff),var(--sh-orange,#ff6410)) 1 !important;
	background: radial-gradient(circle at 18% 50%,rgba(36,200,255,.12),transparent 30%),radial-gradient(circle at 86% 50%,rgba(255,100,16,.12),transparent 34%),linear-gradient(90deg,rgba(2,17,31,.99),rgba(3,12,24,.99) 54%,rgba(35,12,8,.99)) !important;
}
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__brand {
	display:flex !important; grid-column:1 !important; grid-row:1 !important; grid-area:auto !important; align-items:center !important; justify-content:flex-start !important; gap:12px !important; min-width:0;
}
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc { width:70px !important; height:70px !important; flex:0 0 70px !important; margin:-6px 0; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveBadge { display:inline-flex !important; flex:0 0 auto; padding:7px 13px !important; font-size:9px !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__showInfo,
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__art,
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__stats,
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveDjBar,
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shRadioBar__visualizer { display:none !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now {
	display:grid !important; grid-column:2 !important; grid-row:1 !important; grid-area:auto !important; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; column-gap:15px; align-items:center; min-width:0; text-align:left !important;
}
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now > .shRadioBar__label { grid-column:1; grid-row:1 / 3; margin:0 !important; color:#55e7ff !important; font-size:9px !important; font-weight:950 !important; letter-spacing:.11em; white-space:nowrap; text-transform:uppercase; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__trackMarquee { grid-column:2; grid-row:1; width:100%; min-width:0; margin:0 !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__trackMarqueeTrack > strong { font-size:14px !important; line-height:1.15 !important; text-transform:none !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now > span:not(.shRadioBar__label) { grid-column:2; grid-row:2; margin:2px 0 0 !important; color:#a8bcca !important; font-size:9px !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__controls {
	display:grid !important; grid-column:3 !important; grid-row:1 !important; grid-area:auto !important; grid-template-columns:auto minmax(150px,1fr) !important; gap:20px !important; align-items:center !important; min-width:0;
}
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__transport { display:block !important; grid-area:auto !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play { min-width:118px !important; height:38px !important; padding:0 16px !important; border-radius:8px !important; font-size:9px !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeGroup { display:block !important; grid-area:auto !important; min-width:0; padding:0 !important; border:0 !important; background:transparent !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeHeader { display:none !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeRow { display:grid !important; grid-template-columns:34px minmax(0,1fr); gap:8px; align-items:center; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__mute { width:34px !important; height:34px !important; }
.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volume { width:100% !important; }

@media (max-width:1220px) {
	.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) .shHomeDockToggle { bottom:176px; }
	.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) { padding-bottom:176px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer { grid-template-columns:125px minmax(180px,1fr) minmax(250px,.9fr) !important; padding-inline:18px !important; gap:12px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc { width:58px !important; height:58px !important; flex-basis:58px !important; margin:0; }
}
@media (max-width:900px) {
	.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) .shHomeDockToggle { bottom:218px; }
	.shAppHome.shHomePlayerExpanded:not(.shRadioChatOnly) { padding-bottom:218px !important; }
}
@media (max-width:720px) {
	.shHomeDockToggle { right:7px; bottom:52px; min-width:132px; height:23px; padding:0 10px; font-size:8px; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) { padding-bottom:52px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer { grid-template-columns:58px minmax(0,1fr) 48px !important; grid-template-rows:52px !important; height:52px !important; min-height:52px !important; padding:0 8px !important; gap:8px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__disc { width:48px !important; height:48px !important; flex-basis:48px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__liveBadge { display:none !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now { grid-template-columns:1fr; grid-template-rows:auto auto; column-gap:0; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now > .shRadioBar__label { grid-column:1; grid-row:1; font-size:7px !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__trackMarquee { grid-column:1; grid-row:2; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__now > span:not(.shRadioBar__label) { display:none !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__controls { display:block !important; grid-column:3 !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play { min-width:0 !important; width:44px !important; height:38px !important; padding:0 !important; }
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__play span,
	.shAppHome.shHomePlayerCompact:not(.shRadioChatOnly) > .shProPlayer .shProPlayer__volumeGroup { display:none !important; }
}

/* Alpha 0.7.1.56.37 — public weekly iCalendar download */
.shSchedulePage__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 8px;
}

.shSchedulePage__download,
.shSchedulePage__actions .shSchedulePage__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	box-sizing: border-box;
	padding: 0 13px;
	border: 1px solid rgba(36, 200, 255, .23);
	border-radius: 8px;
	background: rgba(36, 200, 255, .065);
	color: #d7f4ff !important;
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .055em;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.shSchedulePage__download {
	border-color: rgba(255, 100, 16, .42);
	background: linear-gradient(135deg, rgba(255, 100, 16, .2), rgba(255, 100, 16, .08));
	color: #ffe0cb !important;
}

.shSchedulePage__download:hover,
.shSchedulePage__download:focus-visible,
.shSchedulePage__actions .shSchedulePage__back:hover,
.shSchedulePage__actions .shSchedulePage__back:focus-visible {
	transform: translateY(-1px);
	border-color: rgba(36, 200, 255, .55);
	background: rgba(36, 200, 255, .12);
}

.shSchedulePage__download:hover,
.shSchedulePage__download:focus-visible {
	border-color: rgba(255, 126, 43, .7);
	background: linear-gradient(135deg, rgba(255, 100, 16, .3), rgba(255, 100, 16, .13));
}

@media (max-width: 800px) {
	.shSchedulePage__actions {
		justify-content: flex-start;
		width: 100%;
	}
}

@media (max-width: 520px) {
	.shSchedulePage__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.shSchedulePage__download,
	.shSchedulePage__actions .shSchedulePage__back {
		width: 100%;
	}
}
