ui/dailychallengescreen.razor.scss
@import "Theme.scss";
$yellow: #dddd99;
$red: #c98a8a;
$teal: #76d1d1;

DailyChallengeScreen {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	flex-direction: column;
	align-items: center;
	padding: 48px 0 46px;
	font-family: $font;
	font-smooth: never;

	.header {
		font-size: 72px;
		color: $white;
		text-shadow: 4px 4px 0 $black;
		margin-bottom: 10px;
	}

	// Day-end countdown in the quiet strip above the title. Absolute so it never shifts the layout
	// when it appears/expires; faded muted red so it reads as a background warning, not a headline.
	.countdown {
		position: absolute;
		top: 34px;
		left: 0;
		right: 0;
		text-align: center;
		font-size: 22px;
		color: rgba(201, 138, 138, 0.65);
	}

	// Smiling-cube selector shared by the off-list focus zones (day-nav / PLAY-WATCH / MAIN MENU).
	// Same sprite sheet as the in-list cube; .hidden fades it out while keeping its lane so buttons
	// don't shift as focus comes and goes.
	.selcube {
		width: 58px;
		height: 58px;
		flex-shrink: 0;
		margin: 0 8px;
		background-image: url( "sprites/menu_selector.png" );
		background-repeat: no-repeat;
		background-size: 700% 100%;
		image-rendering: pixelated;

		&.hidden { opacity: 0; }
	}

	.daybar {
		flex-direction: row;
		align-items: center;
		justify-content: center;
		margin-bottom: 12px;
		pointer-events: all;

		// Shared .square-btn look (Theme.scss), shrunk to the daybar's 58px lane so the header
		// layout is unchanged. Disabled arrows fade out and lose the press-in so they read inert.
		.nav {
			width: 58px;
			height: 58px;
			flex-shrink: 0;

			&.disabled {
				opacity: 0.25;
				cursor: blank-arrow;

				&:active {
					transform: none;
					box-shadow: 6px 6px 0 $square-btn-shadow;
				}
			}
		}

		.daytext {
			width: 420px;
			flex-direction: column;
			align-items: center;
			justify-content: center;

			.date {
				font-size: 36px;
				color: $white;
			}

			.attempts {
				font-size: 22px;
				color: rgba(248, 245, 230, 0.5);
				margin-top: 2px;
			}
		}
	}

	.status {
		flex-direction: row;
		height: 66px;
		align-items: center;
		justify-content: center;
		margin-bottom: 8px;
		pointer-events: all;

		.play, .watch {
			padding: 12px 44px;
			font-size: 34px;
			color: $black;
			background-color: $yellow;
			cursor: blank-hand;

			&:hover { background-color: $white; }
			&.selected { background-color: $white; }
		}

		// daily_debug_nav's non-today DEBUG PLAY — amber so it never reads as the real PLAY.
		.play.debug {
			background-color: #d9a25a;

			&:hover { background-color: $white; }
			&.selected { background-color: $white; }
		}

		.watch {
			background-color: $teal;

			&:hover { background-color: $white; }
			&.selected { background-color: $white; }
		}

		.state {
			font-size: 34px;
			color: rgba(248, 245, 230, 0.7);
		}
	}

	.info {
		font-size: 34px;
		color: $white;
	}

	.list {
		position: relative;
		width: 1050px;
		flex-grow: 1;
		align-items: stretch;
		overflow: hidden;
		pointer-events: all;

		.info {
			position: absolute;
			left: 0;
			right: 0;
			top: 80px;
			text-align: center;
			justify-content: center;
		}

		.scrollbar {
			position: absolute;
			right: 4px;
			width: 14px;
			background-color: rgba(248, 245, 230, 0.35);
		}

		.selector {
			position: absolute;
			left: 4px;
			width: 64px;
			height: 64px;
			background-image: url( "sprites/menu_selector.png" );
			background-repeat: no-repeat;
			background-size: 700% 100%;
			image-rendering: pixelated;
		}

		.row {
			position: absolute;
			left: 72px;
			right: 0;
			flex-direction: row;
			align-items: center;
			height: 64px;
			background-color: rgba(0, 0, 0, 0.12);

			&.even { background-color: rgba(0, 0, 0, 0.22); }
			&.selected { background-color: rgba(221, 221, 153, 0.1); }

			// Row content is the shared LeaderboardRow component, which styles itself.
		}
	}

	.footer {
		flex-direction: row;
		align-items: center;
		margin-top: 8px;
		pointer-events: all;

		.back {
			padding: 10px 28px;
			font-size: 30px;
			color: $black;
			background-color: $red;
			cursor: blank-hand;

			&:hover { background-color: #d99a9a; }
			&.selected { background-color: #d99a9a; }
		}
	}

	// Character picker inside the centred 1080px UI square's upper-right corner.
	.character-slot {
		position: absolute;
		z-index: 1000;
		right: 50%;
		margin-right: -516px;
		top: 8px;
		align-items: flex-end;
	}

	// Today's generated-level schematic in the upper-left corner (same component as the leaderboard
	// level picker's face, drawn larger).
	.level-slot {
		position: absolute;
		z-index: 1000;
		left: 50%;
		margin-left: -516px;
		top: 8px;
		width: 200px;
		height: 200px;
		overflow: hidden;
		border: 4px solid rgba( 111, 224, 208, 1 );
	}
}