.nx-tool-page {
	--nx-bg: linear-gradient(135deg, #f4fbf5 0%, #eef7ff 45%, #fff8ef 100%);
	--nx-surface: rgba(255, 255, 255, 0.86);
	--nx-border: rgba(21, 63, 36, 0.1);
	--nx-text: #183225;
	--nx-muted: #597266;
	--nx-accent: #12733a;
	--nx-accent-2: #0c9cb0;
	--nx-shadow: 0 24px 60px rgba(20, 38, 30, 0.12);
	background: var(--nx-bg);
	border: 1px solid rgba(18, 115, 58, 0.1);
	border-radius: 28px;
	box-shadow: var(--nx-shadow);
	color: var(--nx-text);
	margin-top: 8px;
	max-width: 100%;
	overflow: hidden;
	padding: 24px;
	position: relative;
}

.nx-tool-page,
.nx-tool-page * {
	box-sizing: border-box;
}

.nx-tool-page::before,
.nx-tool-page::after {
	border-radius: 999px;
	content: "";
	filter: blur(8px);
	opacity: 0.5;
	position: absolute;
	z-index: 0;
}

.nx-tool-page::before {
	background: rgba(12, 156, 176, 0.14);
	height: 220px;
	right: -40px;
	top: -60px;
	width: 220px;
}

.nx-tool-page::after {
	background: rgba(18, 115, 58, 0.12);
	bottom: -80px;
	height: 180px;
	left: -60px;
	width: 180px;
}

.nx-tool-page > * {
	position: relative;
	z-index: 1;
}

.nx-hero {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	margin-bottom: 24px;
}

.nx-pill,
.nx-inline-note,
.nx-tool-nav__eyebrow,
.nx-discovery-card__eyebrow {
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nx-pill {
	background: rgba(18, 115, 58, 0.1);
	border: 1px solid rgba(18, 115, 58, 0.14);
	border-radius: 999px;
	color: var(--nx-accent);
	display: inline-flex;
	font-size: 11px;
	font-weight: 700;
	padding: 8px 12px;
}

.nx-hero h2,
.nx-section-heading h2 {
	color: var(--nx-text);
	font-size: clamp(28px, 3.2vw, 42px);
	line-height: 1.08;
	margin: 14px 0 12px;
}

.nx-hero p,
.nx-section-heading p,
.nx-panel p,
.nx-breakdown,
.nx-discovery-card p {
	color: var(--nx-muted);
	font-size: 15px;
	line-height: 1.7;
}

.nx-stat-grid,
.nx-result-grid,
.nx-discovery-grid,
.nx-race-status {
	display: grid;
	gap: 16px;
}

.nx-stat-grid {
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.nx-stat-card,
.nx-result-card,
.nx-meter-card,
.nx-discovery-card,
.nx-tool-nav__link,
.nx-panel {
	backdrop-filter: blur(12px);
	background: var(--nx-surface);
	border: 1px solid var(--nx-border);
	border-radius: 22px;
	box-shadow: 0 16px 40px rgba(22, 37, 31, 0.06);
	min-width: 0;
}

.nx-stat-card,
.nx-result-card,
.nx-meter-card {
	padding: 18px;
}

.nx-stat-card__label,
.nx-result-card span,
.nx-meter-card span,
.nx-lane__meta span {
	color: var(--nx-muted);
	display: block;
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.nx-stat-card strong,
.nx-result-card strong,
.nx-meter-card strong,
.nx-lane__meta strong {
	color: var(--nx-text);
	font-size: 26px;
	line-height: 1.1;
}

.nx-stat-card small {
	color: var(--nx-muted);
	display: block;
	font-size: 13px;
	margin-top: 10px;
}

.nx-tool-nav {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin-bottom: 24px;
}

.nx-tool-nav__link {
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px;
	text-decoration: none;
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.nx-tool-nav__title {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
}

.nx-tool-nav__link:hover,
.nx-tool-nav__link:focus-visible,
.nx-discovery-card:hover,
.nx-discovery-card:focus-visible {
	border-color: rgba(12, 156, 176, 0.36);
	box-shadow: 0 22px 46px rgba(12, 156, 176, 0.14);
	transform: translateY(-4px);
}

.nx-tool-nav__link.is-active {
	background: linear-gradient(135deg, rgba(18, 115, 58, 0.14), rgba(12, 156, 176, 0.12));
	border-color: rgba(18, 115, 58, 0.22);
	box-shadow: 0 18px 42px rgba(18, 115, 58, 0.14);
}

.nx-grid,
.nx-grid--wide {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	margin-bottom: 30px;
}

.nx-panel {
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-width: 0;
	padding: 24px;
}

.nx-panel--glass {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.82));
}

.nx-panel--stacked {
	justify-content: space-between;
}

.nx-panel__topline {
	align-items: start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.nx-panel__topline--compact {
	align-items: center;
}

.nx-panel h3,
.nx-panel h4,
.nx-discovery-card h3 {
	color: var(--nx-text);
	margin: 0;
}

.nx-inline-note,
.nx-tool-nav__eyebrow,
.nx-discovery-card__eyebrow {
	color: var(--nx-accent-2);
	font-size: 11px;
	font-weight: 700;
}

.nx-chip-row,
.nx-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.nx-chip,
.nx-button {
	appearance: none;
	border: 0;
	border-radius: 16px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.nx-chip {
	background: rgba(18, 115, 58, 0.08);
	color: var(--nx-text);
	padding: 12px 14px;
}

.nx-chip.is-active {
	background: linear-gradient(135deg, #12733a, #0c9cb0);
	box-shadow: 0 14px 28px rgba(12, 156, 176, 0.22);
	color: #fff;
}

.nx-button {
	background: linear-gradient(135deg, #12733a, #0c9cb0);
	box-shadow: 0 16px 30px rgba(18, 115, 58, 0.22);
	color: #fff;
	padding: 14px 18px;
}

.nx-button--ghost {
	background: rgba(24, 50, 37, 0.07);
	box-shadow: none;
	color: var(--nx-text);
}

.nx-button:hover,
.nx-button:focus-visible,
.nx-chip:hover,
.nx-chip:focus-visible {
	transform: translateY(-2px);
}

.nx-prompt-card {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(242, 250, 247, 0.92));
	border: 1px solid rgba(18, 115, 58, 0.08);
	border-radius: 20px;
	padding: 18px;
}

.nx-prompt-text {
	font-size: 18px;
	min-height: 120px;
	word-break: break-word;
}

.nx-prompt-text .is-done {
	color: #12733a;
	font-weight: 700;
}

.nx-prompt-text .is-current {
	background: rgba(12, 156, 176, 0.2);
	border-radius: 4px;
	color: #0d5163;
}

.nx-prompt-text .is-upcoming {
	color: #72867b;
}

.nx-input-wrap {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.nx-input-wrap input,
.nx-input-wrap select,
.nx-input-wrap textarea {
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(24, 50, 37, 0.12);
	border-radius: 16px;
	box-shadow: inset 0 1px 2px rgba(24, 50, 37, 0.03);
	color: var(--nx-text);
	font-size: 15px;
	max-width: 100%;
	padding: 14px 16px;
	width: 100%;
}

.nx-input-wrap textarea {
	min-height: 150px;
	resize: vertical;
}

.nx-input-wrap span {
	color: var(--nx-text);
	font-size: 13px;
	font-weight: 700;
}

.nx-form {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.nx-form > .nx-panel__topline,
.nx-form > .nx-button {
	grid-column: 1 / -1;
}

.nx-results-stack,
.nx-breakdown,
.nx-itinerary {
	display: grid;
	gap: 14px;
}

.nx-breakdown {
	background: rgba(255, 255, 255, 0.66);
	border: 1px solid rgba(24, 50, 37, 0.08);
	border-radius: 18px;
	padding: 18px;
}

.nx-breakdown__row {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.nx-race-status {
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.nx-lane-board {
	display: grid;
	gap: 18px;
}

.nx-lane {
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(24, 50, 37, 0.08);
	border-radius: 18px;
	padding: 16px;
}

.nx-lane__meta {
	align-items: center;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	margin-bottom: 10px;
}

.nx-progress-track {
	background: rgba(12, 156, 176, 0.12);
	border-radius: 999px;
	height: 12px;
	overflow: hidden;
	position: relative;
}

.nx-progress-track span {
	background: linear-gradient(90deg, #12733a, #0c9cb0);
	border-radius: inherit;
	display: block;
	height: 100%;
	transition: width 0.22s ease;
	width: 0;
}

.nx-progress-track--muted span {
	background: linear-gradient(90deg, #4c7f71, #8ac1b6);
}

.nx-discovery {
	display: grid;
	gap: 18px;
}

.nx-discovery-grid {
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.nx-discovery-card {
	align-items: flex-start;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 20px;
	text-decoration: none;
}

.nx-discovery-card__cta {
	color: var(--nx-accent);
	font-size: 13px;
	font-weight: 700;
	margin-top: auto;
}

.nx-itinerary-day {
	background: rgba(255, 255, 255, 0.75);
	border: 1px solid rgba(24, 50, 37, 0.08);
	border-radius: 18px;
	padding: 18px;
}

.nx-itinerary-day h4,
.nx-itinerary-day p {
	margin: 0 0 10px;
}

.nx-itinerary-day ul {
	margin: 0;
	padding-left: 18px;
}

.nx-itinerary-day li {
	color: var(--nx-muted);
	margin-bottom: 8px;
}

@media (max-width: 680px) {
	.nx-tool-page {
		padding: 18px;
	}

	.nx-race-status,
	.nx-stat-grid,
	.nx-form,
	.nx-result-grid,
	.nx-tool-nav,
	.nx-discovery-grid,
	.nx-grid,
	.nx-grid--wide,
	.nx-hero {
		grid-template-columns: 1fr;
	}

	.nx-panel,
	.nx-stat-card,
	.nx-result-card,
	.nx-meter-card,
	.nx-discovery-card,
	.nx-tool-nav__link {
		border-radius: 18px;
	}

	.nx-panel__topline {
		flex-direction: column;
	}
}
