/**
 * Protect theme chrome from third-party tool stylesheets (e.g. TI-84 tn.css).
 * Keep rules aligned with assets/css/source.css header tokens.
 */

body.sn-tool-page {
	font-family: var(--font-body), system-ui, -apple-system, "Segoe UI", sans-serif !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	color: var(--color-text) !important;
	background-color: var(--color-bg) !important;
	margin: 0 !important;
}

.sn-site-header {
	position: sticky !important;
	display: block !important;
	background: rgba(255, 255, 255, 0.95) !important;
	border-bottom: 1px solid var(--color-border) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.sn-site-header .sn-container {
	width: 100% !important;
	max-width: 1280px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}

.sn-site-header__inner {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	min-height: 4.5rem !important;
	padding-top: 0.625rem !important;
	padding-bottom: 0.625rem !important;
}

.sn-site-header a {
	text-decoration: none !important;
}

.sn-site-header__logo {
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	padding: 0.25rem 0.5rem 0.25rem 0 !important;
	overflow: visible !important;
}

.sn-site-header__logo img {
	display: block !important;
	height: 3.5rem !important;
	width: auto !important;
	max-width: min(280px, 42vw) !important;
	object-fit: contain !important;
	object-position: left center !important;
}

@media (min-width: 1024px) {
	.sn-site-header__logo img {
		height: 3.75rem !important;
	}

	.sn-site-header__inner {
		min-height: 5rem !important;
	}
}

.sn-primary-nav {
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 1 1 auto !important;
	gap: 0.25rem !important;
}

.sn-primary-nav > ul,
.sn-primary-nav ul.menu {
	display: flex !important;
	align-items: center !important;
	gap: 0.25rem !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.sn-primary-nav li {
	display: list-item !important;
	float: none !important;
	margin: 0 !important;
}

.sn-primary-nav .sn-nav-link {
	display: inline-flex !important;
	align-items: center !important;
	padding: 0.5rem 0.75rem !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	color: var(--color-text) !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0.5rem !important;
	text-decoration: none !important;
}

.sn-primary-nav .sn-nav-link:hover,
.sn-primary-nav .sn-nav-link:focus {
	color: #1800AC !important;
	background: rgba(254, 215, 0, 0.1) !important;
}

.sn-primary-nav .sn-nav-link.is-active {
	color: #1800AC !important;
	background: rgba(24, 0, 172, 0.05) !important;
	font-weight: 600 !important;
}

@media (min-width: 1024px) {
	.sn-primary-nav {
		display: flex !important;
	}
}

@media (max-width: 1023px) {
	.sn-site-header__menu-toggle {
		display: inline-flex !important;
	}
}
