
/* ============================================================
   ACE Premium Major Question Chips
   v3.1.49
   ============================================================ */

.ace-question-selection{
	width:100%;
	box-sizing:border-box;
	margin:0 auto 14px;
	padding:10px 0 6px;
	background:transparent;
	border:0;
	box-shadow:none;
}

.ace-question-selection__form{
	margin:0;
	width:100%;
}

.ace-major-selection{
	display:flex;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:10px;
	width:100%;
	max-width:100%;
	margin:0 auto;
	padding:4px 10px 10px;
	box-sizing:border-box;
	overflow-x:auto;
	overflow-y:hidden;
	scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}

.ace-major-selection::-webkit-scrollbar,
.ace-ae-major-question-nav__scroller::-webkit-scrollbar{
	display:none;
}

.ace-major-selection__chip{
	position:relative;
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	padding:0;
	border:1px solid #d8dee8;
	border-radius:12px;
	background:linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);
	color:#172033;
	cursor:pointer;
	font-family:inherit;
	font-size:15px;
	font-weight:800;
	line-height:1;
	text-align:center;
	box-shadow:
		0 2px 5px rgba(20,30,50,.08),
		0 8px 18px rgba(20,30,50,.05);
	transition:
		transform .16s ease,
		box-shadow .16s ease,
		border-color .16s ease,
		background .16s ease,
		color .16s ease;
}

.ace-major-selection__chip::after{
	content:"";
	position:absolute;
	left:8px;
	right:8px;
	bottom:4px;
	height:2px;
	border-radius:999px;
	background:rgba(34,113,177,.18);
}

.ace-major-selection__chip:hover{
	transform:translateY(-2px);
	border-color:#2271b1;
	background:linear-gradient(180deg,#ffffff 0%,#eef7ff 100%);
	color:#135e96;
	box-shadow:
		0 4px 9px rgba(20,30,50,.10),
		0 12px 24px rgba(34,113,177,.12);
}

.ace-major-selection__chip:active{
	transform:translateY(0);
}

.ace-major-selection__chip:focus-visible{
	outline:3px solid rgba(34,113,177,.22);
	outline-offset:3px;
}

/* In-quiz navigator: same premium visual language. */
.ace-ae-major-question-nav{
	width:100%;
	box-sizing:border-box;
	margin:0 auto 14px;
	padding:8px 0 2px;
	background:transparent;
}

.ace-ae-major-question-nav__scroller{
	display:flex;
	flex-wrap:nowrap;
	justify-content:center;
	align-items:center;
	gap:10px;
	width:100%;
	max-width:100%;
	margin:0 auto;
	padding:4px 10px 10px;
	box-sizing:border-box;
	overflow-x:auto;
	overflow-y:hidden;
	white-space:nowrap;
	scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}

.ace-ae-major-question-nav__button{
	position:relative;
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	padding:0;
	border:1px solid #d8dee8;
	border-radius:12px;
	background:linear-gradient(180deg,#ffffff 0%,#f5f7fb 100%);
	color:#172033;
	cursor:pointer;
	font-family:inherit;
	font-size:15px;
	font-weight:800;
	line-height:1;
	text-align:center;
	box-shadow:
		0 2px 5px rgba(20,30,50,.08),
		0 8px 18px rgba(20,30,50,.05);
	transition:
		transform .16s ease,
		box-shadow .16s ease,
		border-color .16s ease,
		background .16s ease,
		color .16s ease;
}

.ace-ae-major-question-nav__button::after{
	content:"";
	position:absolute;
	left:8px;
	right:8px;
	bottom:4px;
	height:2px;
	border-radius:999px;
	background:rgba(34,113,177,.18);
}

.ace-ae-major-question-nav__button:hover{
	transform:translateY(-2px);
	border-color:#2271b1;
	background:linear-gradient(180deg,#ffffff 0%,#eef7ff 100%);
	color:#135e96;
	box-shadow:
		0 4px 9px rgba(20,30,50,.10),
		0 12px 24px rgba(34,113,177,.12);
}

.ace-ae-major-question-nav__button:focus-visible{
	outline:3px solid rgba(34,113,177,.22);
	outline-offset:3px;
}

/* Current = blue premium state. */
.ace-ae-major-question-nav__button.is-current{
	border-color:#2271b1;
	background:linear-gradient(180deg,#2271b1 0%,#135e96 100%);
	color:#fff;
	box-shadow:
		0 4px 10px rgba(34,113,177,.22),
		0 10px 24px rgba(34,113,177,.16);
	transform:translateY(-1px);
}

.ace-ae-major-question-nav__button.is-current::after{
	background:rgba(255,255,255,.72);
}

/* Correct = green. */
.ace-ae-major-question-nav__button.is-correct{
	border-color:#35a85a;
	background:linear-gradient(180deg,#f5fff7 0%,#e5f8ea 100%);
	color:#18743b;
}

.ace-ae-major-question-nav__button.is-correct::after{
	background:#35a85a;
}

/* Incorrect = red. */
.ace-ae-major-question-nav__button.is-incorrect{
	border-color:#d63638;
	background:linear-gradient(180deg,#fff7f7 0%,#ffe9e9 100%);
	color:#b42325;
}

.ace-ae-major-question-nav__button.is-incorrect::after{
	background:#d63638;
}

/* Review / partially answered = amber. */
.ace-ae-major-question-nav__button.is-review{
	border-color:#dba617;
	background:linear-gradient(180deg,#fffdf5 0%,#fff5d8 100%);
	color:#8a5a00;
}

.ace-ae-major-question-nav__button.is-review::after{
	background:#dba617;
}

/* A single chip or a short row remains visually centered. */
@media (min-width:681px){
	.ace-major-selection,
	.ace-ae-major-question-nav__scroller{
		overflow-x:visible;
	}
}

/* Mobile: keep the row horizontal without forcing page width. */
@media (max-width:680px){
	.ace-question-selection{
		margin-bottom:10px;
	}

	.ace-major-selection,
	.ace-ae-major-question-nav__scroller{
		justify-content:flex-start;
		gap:8px;
		padding-left:12px;
		padding-right:12px;
	}

	.ace-major-selection__chip,
	.ace-ae-major-question-nav__button{
		width:40px;
		height:40px;
		border-radius:11px;
	}

	.ace-major-selection__chip::after,
	.ace-ae-major-question-nav__button::after{
		left:7px;
		right:7px;
	}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion:reduce){
	.ace-major-selection__chip,
	.ace-ae-major-question-nav__button{
		transition:none;
	}
}

/* ============================================================
   Premium quiz identity header
   Grade + Subject sits ABOVE the question-number chips.
   ============================================================ */

.ace-quiz-top-header{
	width:100%;
	box-sizing:border-box;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	margin:0 auto 10px;
	padding:4px 12px 0;
}

.ace-quiz-grade-chip{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:42px;
	height:30px;
	padding:0 12px;
	border-radius:999px;
	background:linear-gradient(135deg,#172033 0%,#2b3b55 100%);
	color:#fff;
	font-size:13px;
	font-weight:800;
	line-height:1;
	letter-spacing:.02em;
	box-shadow:0 4px 10px rgba(20,30,50,.16);
}

.ace-quiz-subject-title{
	margin:7px 0 0;
	padding:0;
	color:#172033;
	font-size:clamp(24px,3vw,38px);
	font-weight:800;
	line-height:1.08;
	letter-spacing:-.025em;
}

.ace-ae-mixed-form > .ace-quiz-top-header{
	margin-bottom:8px;
}

/* The question renderers already contain their own legacy header.
   The mixed shell supplies the premium shared header above, so hide
   only the nested duplicate header in the mixed assessment shell. */
.ace-ae-mixed-question-body .ace-assessment-header{
	display:none !important;
}

@media(max-width:680px){
	.ace-quiz-top-header{
		padding-top:2px;
		margin-bottom:8px;
	}

	.ace-quiz-grade-chip{
		min-width:38px;
		height:28px;
		font-size:12px;
	}

	.ace-quiz-subject-title{
		font-size:26px;
	}
}
