/* App Styles */
#app {
	height: 100svh;
	width: 100svw;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

/* Main Display for Top Row Styles */
#student-stats-container {
	display: flex;
	flex-direction: row;
	margin-bottom: 2px;
}

#student-stats-container > div {
	padding: 3px;
	margin: 0px;
}

/* Individual Displays for Top Row Styles*/
#points-display,
#student-name-display,
#proficiency-display {
	background-color: var(--purple-bg);
	text-shadow: 1px 1px black;
	font-weight: 550;
	margin-bottom: 1px;
	text-wrap: nowrap;
}

#points-display,
#proficiency-display {
	width: 10em;
}

#student-name-display {
	margin: 0 5px !important;
	background-color: hsl(181, 99%, 34%);
	text-shadow: 1px 1px black;
	flex-grow: 1;
	text-align: center;
}

#test-progress-display {
	flex-grow: 1;
	background-color: var(--purple-bg);
	font-weight: 700;
	text-align: center;
	text-shadow: 1px 1px black;
}


.top-label {
	float: left;
	padding: 0;
}

.top-value {
	float: right;
	padding: 0;
}

/* Container and Display for Flashcards Styles */
#flashcard-display {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-grow: 1;
	min-height: 0;
	overflow: hidden;
	background-color: var(--action-blue);
	/*background-color: white;*/
	font-size: 2.5rem;
	border-radius: 10px;
	margin-bottom: 2px;
	margin-top: 5px;
	padding: 0.5rem;
	white-space: preserve-breaks;
}

.question-content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(0.25rem, 1svh, 0.75rem);
	min-height: 0;
	max-width: 100%;
	max-height: 100%;
}

.question-markup,
.question-image-fallback {
	display: block;
	flex: 0 0 auto;
}

.question-image {
	display: block;
	min-height: 0;
	max-width: min(100%, 24rem);
	max-height: min(100%, 18rem, 24svh);
	object-fit: contain;
}

.question-content[data-variant='combined'] .question-image {
	max-height: min(70%, 14rem, 18svh);
}

.question-content[data-variant='combined'] .question-markup {
	font-size: clamp(1.25rem, 4vw, 1.75rem);
	line-height: 1.15;
}

#app[data-selected-game-mode='asteroid'] #flashcard-display {
	border-color: oklch(0.78 0.04 275);
	background-color: black;
	background-image: url('/games/asteroid/assets/starfield.svg');
	background-position: center;
	background-size: cover;
	color: white;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-shadow:
		0 2px 2px black,
		0 0 10px oklch(0.88 0.12 275 / 70%);
}

#app[data-selected-game-mode='asteroid'] #flashcard-display:hover {
	filter: brightness(1.15);
}

#app[data-selected-game-mode='asteroid'] #flashcard-display:focus-visible {
	outline: 3px solid oklch(0.88 0.18 95);
	outline-offset: 2px;
}

#app[data-answer-state='waiting'] #flashcard-display {
	background-color: black;
}

#app[data-answer-state='correct'] #flashcard-display {
	background-color: var(--correct-bg);
}

#app[data-answer-state='incorrect'] #flashcard-display,
#app[data-answer-state='incorrect'] #response-display {
	background-color: var(--incorrect-bg);
}

#app[data-answer-state='paused'] #flashcard-display {
	background-color: var(--paused-bg-light);
	color: black;
}

/* Container and Display for Student Response and Correct Answer Styles*/
#response-and-answer-container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 1px;
	row-gap: 1px;
	height: 2em;
	margin-bottom: 1px;
	font-size: 2rem;
	flex-shrink: 0;
}

#response-display {
	background-color: var(--purple-bg);
	justify-content: center;
	align-items: center;
	border-radius: 10px;
	max-width: 50vw;
}

#app[data-answer-state='correct'] #response-display {
	background-color: var(--correct-bg);
}

#app[data-answer-state='paused'] #response-display {
	background-color: var(--paused-bg);
}

#answer-display {
	display: flex;
	background-color: var(--purple-bg);
	justify-content: center;
	align-items: center;
	border-radius: 10px;
	text-wrap: nowrap;
}

#app[data-answer-state='correct'] #answer-display {
	background-color: var(--correct-bg);
}

#app[data-answer-state='incorrect'] #answer-display {
	background-color: var(--correct-bg);
}

#app[data-answer-state='paused'] #answer-display {
	background-color: var(--paused-bg);
}

/* Game mode toggle shown before gameplay starts. */
.game-mode-toggle {
	display: block;
	width: 100%;
	height: 100%;
	min-width: 0;
	border-radius: 10px;
	background-color: oklch(1 0 0 / 0%);
	color: white;
	font-size: clamp(0.85rem, 3vw, 1.1rem);
	font-weight: 700;
	line-height: 1;
	padding: 0.35rem 0.5rem;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 100ms linear, color 100ms linear;
}

.game-mode-toggle:hover {
	background-color: oklch(1 0 0 / 20%);
}

.game-mode-toggle:active {
	background-color: oklch(1 0 0 / 28%);
}

@media (prefers-reduced-motion: reduce) {
	.game-mode-toggle {
		transition-duration: 0.01ms;
	}
}

/* Container for Keypad Styles - 4 Rows, 3 Columns */

#keypad-container {
	position: relative;
}

#keypad {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 1px;
	row-gap: 1px;
	height: 65vh;
	font-size: 2.75rem;
}

/* Keypad should be smaller if we're playing a canvas game (#71) */
#app[data-game-mode='canvas'] #keypad {
	height: 40vh;
}

#keypad button {
	border-radius: 30px;
}

.special-button {
	background-color: var(--purple-bg);
}

.num-button {
	background-color: oklch(42.226% 0.10272 243.8);
	color: whitesmoke;
}

.op-button {
	background-color: hsl(60, 29%, 40%);
}

#go-button {
	background-color: green;
}


#timer-outer {
	width: 100svw;
	height: 1.5rem;
	position: relative;
	min-height: 0.5rem;
}

#app[data-game-mode='canvas'] #timer-outer,
#app[data-game-mode='canvas'] #flashcard-display {
	display: none;
}

#game-canvas {
	display: none;
	height: 1rem;
	flex-grow: 1;
}

#app[data-game-mode='canvas'] #game-canvas {
	display: block;
}

#timer {
	background: green;
	position: absolute;
	width: 100%;
	height: 100%;
}

#app[data-test-mode='true'][data-timed='false'] #timer-outer {
	display: none;
}

#loader {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: hsla(0, 0%, 50%, 45%);
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	font-size: 1.5rem;
	z-index: 1000; /* Ensure it's on top */
}

#loader button {
	margin-top: 1rem;
	padding: 0.5em 1em;
	border: 0;
	border-radius: 0.5em;
	font-size: 1.25rem;
	font-weight: 700;
	text-shadow: 1px 1px black;
	cursor: pointer;
}

#loader-pause {
	background-color: var(--action-blue);
}

#loader-resume {
	background-color: var(--correct-bg);
}
