/* Shared dark visual template for predictor + TNEA support pages */

body.page-template-page-cutoff-search,
body.page-template-page-cutoff-search-php,
body.page-template-page-tnea-cutoff,
body.page-template-page-tnea-cutoff-php,
body.page-template-page-tnea-counselling-dates,
body.page-template-page-tnea-counselling-dates-php,
body.page-template-page-tnea-cutoff-vs-rank,
body.page-template-page-tnea-cutoff-vs-rank-php,
body.page-template-page-tnea-choice-filling-guide,
body.page-template-page-tnea-choice-filling-guide-php {
	background: #070f24 !important;
}

body.page-template-page-cutoff-search #page,
body.page-template-page-cutoff-search .site,
body.page-template-page-cutoff-search .site-content,
body.page-template-page-cutoff-search .content-area,
body.page-template-page-cutoff-search .site-main,
body.page-template-page-cutoff-search .inside-article,
body.page-template-page-cutoff-search-php #page,
body.page-template-page-cutoff-search-php .site,
body.page-template-page-cutoff-search-php .site-content,
body.page-template-page-cutoff-search-php .content-area,
body.page-template-page-cutoff-search-php .site-main,
body.page-template-page-cutoff-search-php .inside-article,
body.page-template-page-tnea-cutoff #page,
body.page-template-page-tnea-cutoff .site,
body.page-template-page-tnea-cutoff .site-content,
body.page-template-page-tnea-cutoff .content-area,
body.page-template-page-tnea-cutoff .site-main,
body.page-template-page-tnea-cutoff .inside-article,
body.page-template-page-tnea-cutoff-php #page,
body.page-template-page-tnea-cutoff-php .site,
body.page-template-page-tnea-cutoff-php .site-content,
body.page-template-page-tnea-cutoff-php .content-area,
body.page-template-page-tnea-cutoff-php .site-main,
body.page-template-page-tnea-cutoff-php .inside-article,
body.page-template-page-tnea-counselling-dates #page,
body.page-template-page-tnea-counselling-dates .site,
body.page-template-page-tnea-counselling-dates .site-content,
body.page-template-page-tnea-counselling-dates .content-area,
body.page-template-page-tnea-counselling-dates .site-main,
body.page-template-page-tnea-counselling-dates .inside-article,
body.page-template-page-tnea-counselling-dates-php #page,
body.page-template-page-tnea-counselling-dates-php .site,
body.page-template-page-tnea-counselling-dates-php .site-content,
body.page-template-page-tnea-counselling-dates-php .content-area,
body.page-template-page-tnea-counselling-dates-php .site-main,
body.page-template-page-tnea-counselling-dates-php .inside-article,
body.page-template-page-tnea-cutoff-vs-rank #page,
body.page-template-page-tnea-cutoff-vs-rank .site,
body.page-template-page-tnea-cutoff-vs-rank .site-content,
body.page-template-page-tnea-cutoff-vs-rank .content-area,
body.page-template-page-tnea-cutoff-vs-rank .site-main,
body.page-template-page-tnea-cutoff-vs-rank .inside-article,
body.page-template-page-tnea-cutoff-vs-rank-php #page,
body.page-template-page-tnea-cutoff-vs-rank-php .site,
body.page-template-page-tnea-cutoff-vs-rank-php .site-content,
body.page-template-page-tnea-cutoff-vs-rank-php .content-area,
body.page-template-page-tnea-cutoff-vs-rank-php .site-main,
body.page-template-page-tnea-cutoff-vs-rank-php .inside-article,
body.page-template-page-tnea-choice-filling-guide #page,
body.page-template-page-tnea-choice-filling-guide .site,
body.page-template-page-tnea-choice-filling-guide .site-content,
body.page-template-page-tnea-choice-filling-guide .content-area,
body.page-template-page-tnea-choice-filling-guide .site-main,
body.page-template-page-tnea-choice-filling-guide .inside-article,
body.page-template-page-tnea-choice-filling-guide-php #page,
body.page-template-page-tnea-choice-filling-guide-php .site,
body.page-template-page-tnea-choice-filling-guide-php .site-content,
body.page-template-page-tnea-choice-filling-guide-php .content-area,
body.page-template-page-tnea-choice-filling-guide-php .site-main,
body.page-template-page-tnea-choice-filling-guide-php .inside-article {
	background: transparent !important;
}

.cp-page,
.tp-page {
	--tn-ink: #eef6ff;
	--tn-muted: #9fb4d6;
	--tn-border: #2c3f66;
	--tn-panel: #111f3d;
	--tn-tier1-bg:
		linear-gradient(130deg, rgba(86, 163, 255, 0.2), transparent 42%),
		linear-gradient(138deg, #0b1a3d 0%, #0b1742 55%, #0e2456 100%);
	--tn-tier1-border: rgba(128, 155, 212, 0.44);
	--tn-tier1-shadow: 0 28px 60px rgba(4, 10, 28, 0.5);
	--tn-tier1-accent: #69b3ff;
	--tn-tier2-bg: linear-gradient(180deg, rgba(20, 38, 78, 0.97) 0%, rgba(15, 30, 64, 0.95) 100%);
	--tn-tier2-border: rgba(121, 152, 206, 0.4);
	--tn-tier2-shadow: 0 18px 40px rgba(4, 10, 28, 0.42);
	--tn-tier2-accent: #7bc2ff;
	--tn-tier3-bg: linear-gradient(180deg, rgba(17, 33, 70, 0.95) 0%, rgba(13, 25, 54, 0.94) 100%);
	--tn-tier3-border: rgba(102, 130, 182, 0.36);
	--tn-tier3-shadow: 0 14px 34px rgba(4, 10, 28, 0.36);
	--tn-tier3-accent: #5ca8ff;
	--cp-ink: var(--tn-ink);
	--cp-muted: var(--tn-muted);
	--cp-border: var(--tn-border);
	--cp-panel: var(--tn-panel);
	--cp-panel-soft: #15284e;
	--cp-navy: #2c5fff;
	--cp-navy-deep: #1a3ca6;
	--cp-blue: #56a3ff;
	--cp-blue-soft: rgba(86, 163, 255, 0.12);
	--cp-gold: #f7b84b;
	--cp-gold-soft: rgba(247, 184, 75, 0.14);
	--cp-safe: #5dd488;
	--cp-safe-soft: rgba(93, 212, 136, 0.14);
	--cp-target: #ffd166;
	--cp-target-soft: rgba(255, 209, 102, 0.14);
	--cp-dream: #ff6b7f;
	--cp-dream-soft: rgba(255, 107, 127, 0.14);
	--tp-ink: var(--tn-ink);
	--tp-muted: var(--tn-muted);
	--tp-border: var(--tn-border);
	--tp-panel: var(--tn-panel);
	--tp-navy: #2c5fff;
	--tp-navy-deep: #1a3ca6;
	--tn-page-bg:
		radial-gradient(circle at 12% 8%, rgba(86, 163, 255, 0.24), transparent 24rem),
		radial-gradient(circle at 88% 12%, rgba(72, 201, 176, 0.18), transparent 26rem),
		radial-gradient(circle at 42% 82%, rgba(69, 104, 220, 0.22), transparent 32rem),
		linear-gradient(180deg, #070f24 0%, #09142f 55%, #0a1736 100%);
	background: var(--tn-page-bg);
	color: var(--tn-ink);
	min-height: 100vh;
	isolation: isolate;
	font-family: "Sora", "Poppins", "Segoe UI", sans-serif;
}

.cp-page {
	padding: 16px 16px 44px;
}

.gp-public-page {
	--tn-content-max-width: 1160px;
	--tn-readable-width: 72ch;
	--tn-section-gap: 16px;
	--tn-touch-target: 42px;
}

.cp-wrap,
.tp-wrap,
.th-wrap,
.gp-default-wrap {
	width: 100%;
	max-width: var(--tn-content-max-width);
	margin: 0 auto;
}

.cp-page :is(p, li),
.tp-page :is(p, li),
.th-page :is(p, li),
.gp-default-public-page .entry-content :is(p, li) {
	max-width: var(--tn-readable-width);
}

.tn-breadcrumbs {
	margin: 0 0 14px;
}

.tn-breadcrumbs-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tn-breadcrumbs-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.86rem;
	color: #c0d4f3;
}

.tn-breadcrumbs-item:not(:last-child)::after {
	content: "›";
	color: #7ea7e8;
}

.tn-breadcrumbs-item a {
	color: #dce9ff;
	text-decoration: none;
}

.tn-breadcrumbs-item a:hover,
.tn-breadcrumbs-item a:focus-visible {
	color: #ffffff;
	text-decoration: underline;
}

.tn-breadcrumbs-item.is-current span {
	font-weight: 700;
	color: #f3f8ff;
}

.tn-section-toc {
	display: grid;
	gap: 10px;
	margin: 0 0 24px;
}

.tn-section-toc-title {
	margin: 0;
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #dce7ff;
}

.tn-section-toc-list {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0 0 0 18px;
}

.tn-section-toc-list li {
	margin: 0;
}

.tn-section-toc-list a {
	color: #d6e6ff;
	font-weight: 600;
	text-decoration: none;
}

.tn-section-toc-list a:hover,
.tn-section-toc-list a:focus-visible {
	color: #ffffff;
	text-decoration: underline;
}

.tn-next-step {
	display: grid;
	gap: 8px;
	margin-top: 16px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid rgba(127, 156, 214, 0.4);
	background: rgba(16, 33, 68, 0.6);
}

.tn-next-step-label {
	margin: 0;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #cfe0ff;
}

.tn-next-step-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--tn-touch-target);
	padding: 0 14px;
	width: fit-content;
	border-radius: 12px;
	border: 1px solid #4a82ff;
	background: linear-gradient(135deg, #2f86ff 0%, #4263ff 100%);
	color: #ffffff;
	text-decoration: none;
	font-weight: 800;
	box-shadow: 0 16px 28px rgba(17, 53, 117, 0.48);
}

.tn-next-step-button:hover,
.tn-next-step-button:focus-visible {
	box-shadow: 0 14px 28px rgba(4, 10, 28, 0.45), 0 0 0 3px rgba(86, 163, 255, 0.22);
	border-color: #78a6ff;
	filter: none;
	outline: none;
}

.tn-next-step-description {
	margin: 0;
	font-size: 0.9rem;
	color: #a9bddc;
}

.cp-page :where(a, button, input, select, summary):focus-visible,
.tp-page :where(a, button, input, select, summary):focus-visible {
	outline: 3px solid rgba(86, 163, 255, 0.46);
	outline-offset: 2px;
}

.cp-btn-primary,
.tp-btn-primary,
.th-btn-primary,
.tn-next-step-button {
	background: linear-gradient(135deg, #2f86ff 0%, #4263ff 100%);
	border-color: #4a82ff;
	color: #ffffff;
	box-shadow: 0 16px 28px rgba(17, 53, 117, 0.48);
}

.cp-btn-ghost,
.tp-btn-ghost {
	background: rgba(16, 35, 74, 0.78);
	border-color: #3b5686;
	color: #cfe2ff;
}

.cp-page :is(.cp-kicker, .cp-form-kicker, .cp-results-kicker),
.tp-page .tp-kicker {
	background: rgba(136, 167, 255, 0.2);
	color: #dce7ff;
	border: 1px solid rgba(157, 184, 240, 0.34);
}

.cp-page :is(.cp-hero, .cp-form-card, .cp-results, .cp-quick-answers, .cp-info-card, .tn-hub),
.tp-page :is(.tp-hero, .tp-card, .tn-hub) {
	position: relative;
	margin: 0 0 30px;
}

.cp-page .cp-results-stack {
	margin: 0 0 30px;
}

.cp-page .cp-results-stack > .cp-results {
	margin: 0;
}

.cp-page .cp-hero,
.tp-page .tp-hero {
	background: var(--tn-tier1-bg) !important;
	border: 1px solid var(--tn-tier1-border) !important;
	box-shadow: var(--tn-tier1-shadow);
}

.cp-page .cp-hero {
	border-top-width: 2px !important;
	border-top-color: var(--tn-tier1-accent) !important;
}

/* Predictor-only hero compression for better above-the-fold form visibility. */
.cp-page .cp-hero {
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	padding: 16px 18px;
	margin-bottom: 12px;
}

.cp-page .cp-hero-copy {
	min-width: 0;
}

.cp-page .cp-hero .cp-title {
	margin: 8px 0 6px;
	font-size: clamp(1.85rem, 3vw, 2.45rem);
	line-height: 1.1;
	max-width: 18ch;
}

.cp-page .cp-hero .cp-subtitle {
	max-width: 70ch;
	font-size: 0.96rem;
	line-height: 1.48;
}

.cp-page .cp-hero .cp-subtitle-meta {
	margin-top: 6px;
	font-size: 0.82rem;
	line-height: 1.4;
}

.cp-page .cp-form-trust-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: -8px 0 22px;
}

.cp-page .cp-form-trust-pill {
	display: inline-flex;
	align-items: center;
	padding: 7px 12px;
	border-radius: 999px;
	border: 1px solid rgba(157, 184, 240, 0.34);
	background: rgba(136, 167, 255, 0.18);
	color: #dce7ff;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.3;
}

@media (max-width: 1040px) {
	/* Prevent hero copy from collapsing on mobile/tablet. */
	.cp-page .cp-hero {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 12px !important;
	}

	.cp-page .cp-hero-copy {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
	}

	.cp-page .cp-hero .cp-title,
	.cp-page .cp-hero .cp-subtitle,
	.cp-page .cp-hero .cp-subtitle-meta {
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}
}

.cp-page :is(.cp-form-card, .cp-results) {
	background: var(--tn-tier2-bg) !important;
	border: 1px solid var(--tn-tier2-border) !important;
	box-shadow: var(--tn-tier2-shadow);
}

.cp-page :is(.cp-form-card, .cp-results)::after {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	height: 2px;
	border-radius: 999px;
	background: var(--tn-tier2-accent);
	pointer-events: none;
}

.cp-page :is(.cp-quick-answers, .cp-info-card, .tn-hub, .cp-featured-partners, .cp-share-bar, .cp-lead-form),
.tp-page :is(.tp-card, .tn-hub) {
	background: var(--tn-tier3-bg) !important;
	border: 1px solid var(--tn-tier3-border) !important;
	box-shadow: var(--tn-tier3-shadow);
}

.cp-page :is(.cp-quick-answers, .cp-info-card, .tn-hub, .cp-featured-partners, .cp-share-bar, .cp-lead-form)::after,
.tp-page :is(.tp-card, .tn-hub)::after {
	content: "";
	position: absolute;
	top: 0;
	left: 20px;
	right: 20px;
	height: 2px;
	border-radius: 999px;
	background: var(--tn-tier3-accent);
	pointer-events: none;
}

.tp-title,
.tp-card h2,
.tp-card h3,
.tp-faq-item summary {
	color: #eef6ff !important;
}

.tp-intro,
.tp-card p,
.tp-card li,
.tp-deep-links {
	color: #9fb4d6 !important;
}

.tp-cluster-links a {
	background: #132b57;
	border-color: #395f94;
	color: #deebff;
}

.tp-cluster-links a:hover,
.tp-cluster-links a:focus-visible {
	background: #1b3a72;
	border-color: #6ea7f0;
}

.tp-faq-item {
	background: #10234a;
	border-color: #385a8f;
}

.tp-alert {
	background: rgba(255, 87, 112, 0.14);
	border-color: rgba(255, 112, 133, 0.36);
	color: #ffb7c2;
}

.tp-card a:not(.tp-btn):not(.tn-next-step-button),
.tp-deep-links a {
	color: #8fc8ff;
	text-decoration: none;
	text-underline-offset: 2px;
}

.tp-card a:not(.tp-btn):not(.tn-next-step-button):hover,
.tp-card a:not(.tp-btn):not(.tn-next-step-button):focus-visible,
.tp-deep-links a:hover,
.tp-deep-links a:focus-visible {
	color: #d9ecff;
	text-decoration: underline;
}

.tp-card .tn-next-step-button {
	color: #ffffff;
	text-decoration: none;
}

.cp-page .tn-hub,
.tp-page .tn-hub {
	margin: 0 0 30px;
	padding: 20px;
	border-radius: 22px;
}

.cp-page .tn-hub-head h2,
.tp-page .tn-hub-head h2 {
	margin: 0 0 8px;
	font-size: clamp(28px, 3vw, 34px);
	line-height: 1.1;
	color: #eef6ff !important;
}

.cp-page .tn-hub-head p,
.tp-page .tn-hub-head p {
	margin: 0;
	color: #9fb4d6 !important;
	line-height: 1.7;
}

.cp-page .tn-hub-grid,
.tp-page .tn-hub-grid {
	margin-top: 14px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.cp-page .tn-hub-card,
.tp-page .tn-hub-card {
	padding: 14px;
	border-radius: 14px;
	background: #10234a !important;
	border: 1px solid #385a8f !important;
}

.cp-page .tn-hub-card h3,
.tp-page .tn-hub-card h3 {
	margin: 0 0 8px;
	font-size: 22px;
	line-height: 1.2;
}

.cp-page .tn-hub-card h3 a,
.tp-page .tn-hub-card h3 a {
	color: #eef6ff !important;
	text-decoration: none;
}

.cp-page .tn-hub-card h3 a:hover,
.cp-page .tn-hub-card h3 a:focus-visible,
.tp-page .tn-hub-card h3 a:hover,
.tp-page .tn-hub-card h3 a:focus-visible {
	text-decoration: underline;
}

.cp-page .tn-hub-card p,
.tp-page .tn-hub-card p {
	margin: 0;
	line-height: 1.6;
	color: #9fb4d6 !important;
}

@media (max-width: 820px) {
	.cp-page .tn-hub-grid,
	.tp-page .tn-hub-grid {
		grid-template-columns: 1fr;
	}

	.cp-page :is(.cp-hero, .cp-form-card, .cp-results, .cp-quick-answers, .cp-info-card, .tn-hub),
	.tp-page :is(.tp-hero, .tp-card, .tn-hub) {
		margin-bottom: 24px;
	}
}

/* Shared icon baseline for predictor + support templates */
.cp-page .cp-icon,
.tp-page .cp-icon {
	width: 1em;
	height: 1em;
	stroke: currentColor;
	flex-shrink: 0;
}

.cp-page .cp-icon-inline,
.tp-page .cp-icon-inline {
	display: inline-flex;
	vertical-align: text-bottom;
}

.cp-page .cp-icon-accent,
.tp-page .cp-icon-accent {
	color: #8fc8ff;
}

.tp-page .tn-hub-head h2,
.tp-page .tn-hub-card h3 a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.tp-page .tp-card h2 {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.cp-page :is(.cp-quick-answers-head h2, .cp-info-card h2),
.tp-page .tp-card h2 {
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(128, 155, 212, 0.32);
}

/* Shared typography scale for predictor + support templates. */
.cp-page {
	--tn-fs-hero: clamp(1.9rem, 3.3vw, 2.65rem);
	--tn-fs-title: clamp(1.55rem, 2.9vw, 2.1rem);
	--tn-fs-subtitle: clamp(1.18rem, 2.1vw, 1.5rem);
	--tn-fs-body: 1rem;
	--tn-fs-meta: 0.875rem;
	--tn-fs-small: 0.8125rem;
	--tn-lh-tight: 1.2;
	--tn-lh-body: 1.7;
}

.tp-page {
	--tn-fs-hero: clamp(2rem, 4.4vw, 3rem);
	--tn-fs-title: clamp(1.55rem, 2.9vw, 2.1rem);
	--tn-fs-subtitle: clamp(1.18rem, 2.1vw, 1.5rem);
	--tn-fs-body: 1rem;
	--tn-fs-meta: 0.875rem;
	--tn-fs-small: 0.8125rem;
	--tn-lh-tight: 1.2;
	--tn-lh-body: 1.7;
}

.cp-page .cp-title,
.tp-page .tp-title {
	font-size: var(--tn-fs-hero);
	line-height: 1.08;
}

.cp-page :is(.cp-form-title, .cp-results-head h2, .cp-group-head h2, .cp-group-head h3, .cp-featured-partners-head h3, .cp-quick-answers-head h2, .cp-info-card h2, .tn-hub-head h2),
.tp-page .tp-card h2 {
	font-size: var(--tn-fs-title);
	line-height: var(--tn-lh-tight);
}

.cp-page :is(.cp-card-title, .cp-info-card h3, .tn-hub-card h3),
.tp-page :is(.tp-card h3, .tp-faq-item summary) {
	font-size: var(--tn-fs-subtitle);
	line-height: 1.28;
}

.cp-page :is(p, li, .cp-subtitle, .cp-subtitle-meta, .cp-results-head p, .cp-results-note, .cp-card-meta, .cp-field-help, .cp-share-status, .cp-faq-answer p, .cp-trend-summary, .cp-trend-stats-line, .cp-history-box),
.tp-page :is(p, li, .tp-intro, .tp-deep-links) {
	font-size: var(--tn-fs-body);
	line-height: var(--tn-lh-body);
}

.cp-page :is(.cp-kicker, .cp-form-kicker, .cp-results-kicker, .cp-results-stat-label, .cp-results-page-meta, .cp-results-filter-state, .cp-field label, .cp-field-label-row label, .cp-history-label, .cp-metric-label, .cp-trend-table-head, .cp-form-advanced-subtitle, .cp-form-advanced-help, .cp-results-stat-action),
.tp-page :is(.tp-kicker, .tp-cluster-links a) {
	font-size: var(--tn-fs-small);
}

.cp-page .cp-btn,
.tp-page .tp-btn {
	font-size: var(--tn-fs-meta);
}

@media (max-width: 640px) {
	.cp-page {
		padding: 12px 12px 34px;
		--tn-fs-hero: clamp(1.7rem, 7.5vw, 2.1rem);
		--tn-fs-title: clamp(1.34rem, 6vw, 1.78rem);
		--tn-fs-subtitle: clamp(1.08rem, 4.9vw, 1.3rem);
		--tn-fs-body: 0.95rem;
		--tn-fs-meta: 0.84rem;
		--tn-fs-small: 0.78rem;
	}

	.tp-page {
		--tn-fs-hero: clamp(1.78rem, 8.5vw, 2.3rem);
		--tn-fs-title: clamp(1.34rem, 6vw, 1.78rem);
		--tn-fs-subtitle: clamp(1.08rem, 4.9vw, 1.3rem);
		--tn-fs-body: 0.95rem;
		--tn-fs-meta: 0.84rem;
		--tn-fs-small: 0.78rem;
	}

	.cp-page .cp-hero {
		padding: 16px;
		gap: 12px;
		margin-bottom: 14px;
	}

	.cp-page .cp-hero .cp-title {
		margin: 8px 0 6px;
		max-width: none;
	}

	.cp-page .cp-hero .cp-subtitle {
		font-size: 0.95rem;
		line-height: 1.45;
	}

	.cp-page .cp-hero .cp-subtitle-meta {
		font-size: 0.76rem;
	}

	.cp-page .cp-form-trust-row {
		margin: -10px 0 18px;
		gap: 6px;
	}

	.cp-page .cp-form-trust-pill {
		font-size: 0.7rem;
		padding: 6px 10px;
	}
}

/* Unified predictor control system: fonts, buttons, inputs, hover/focus states. */
.cp-page {
	--cp-ui-radius-md: 14px;
	--cp-ui-radius-pill: 999px;
	--cp-ui-control-height: 48px;
	--cp-ui-text: #eaf3ff;
	--cp-ui-muted: #9fb6d5;
	--cp-ui-border: #385a8f;
	--cp-ui-border-strong: #5f8fd0;
	--cp-ui-surface: #0d1f43;
	--cp-ui-surface-soft: #132b57;
	--cp-ui-surface-hover: #1b3a72;
	--cp-ui-ring: 0 0 0 3px rgba(86, 163, 255, 0.22);
}

.cp-page :is(
	.cp-btn,
	.cp-page-link,
	.cp-results-stat-filter,
	.cp-quick-links a,
	.cp-location-mode-option,
	.cp-detect-location-btn,
	.cp-location-chip-action
) {
	font-family: inherit;
	font-weight: 700;
	letter-spacing: 0.01em;
	border-radius: var(--cp-ui-radius-md);
	transition:
		background-color 140ms ease,
		border-color 140ms ease,
		box-shadow 140ms ease,
		color 140ms ease,
		transform 140ms ease;
}

.cp-page .cp-btn,
.cp-page .cp-page-link,
.cp-page .cp-location-mode-option,
.cp-page .cp-field :is(input, select),
.cp-page .cp-faq-search-input {
	min-height: var(--cp-ui-control-height);
}

.cp-page .cp-field :is(input, select),
.cp-page .cp-faq-search-input,
#cp-predictor-form .cp-field :is(input, select) {
	height: var(--cp-ui-control-height);
	box-sizing: border-box;
	max-width: 100%;
	padding: 0 14px;
	border-radius: var(--cp-ui-radius-md);
	border: 1px solid var(--cp-ui-border);
	background: var(--cp-ui-surface);
	color: var(--cp-ui-text);
	font-size: 0.95rem;
	line-height: 1.2;
}

.cp-page .cp-field :is(input, select)::placeholder,
.cp-page .cp-faq-search-input::placeholder {
	color: var(--cp-ui-muted);
}

.cp-page .cp-field :is(input, select):focus,
.cp-page .cp-faq-search-input:focus {
	outline: none;
	border-color: var(--cp-ui-border-strong);
	box-shadow: var(--cp-ui-ring);
}

.cp-page .cp-btn-secondary,
.cp-page .cp-btn-ghost,
.cp-page .cp-page-link,
.cp-page .cp-quick-links a,
.cp-page .cp-location-chip-action {
	background: var(--cp-ui-surface-soft);
	border: 1px solid var(--cp-ui-border);
	color: var(--cp-ui-text);
}

.cp-page :is(
	.cp-btn-secondary,
	.cp-btn-ghost,
	.cp-page-link,
	.cp-quick-links a,
	.cp-location-chip-action
):hover,
.cp-page :is(
	.cp-btn-secondary,
	.cp-btn-ghost,
	.cp-page-link,
	.cp-quick-links a,
	.cp-location-chip-action
):focus-visible {
	background: var(--cp-ui-surface-hover);
	border-color: var(--cp-ui-border-strong);
	color: #f2f8ff;
	box-shadow: var(--cp-ui-ring);
	outline: none;
}

.cp-page .cp-btn-primary {
	background: linear-gradient(135deg, #2f86ff 0%, #4263ff 100%);
	border: 1px solid #4a82ff;
	color: #ffffff;
}

.cp-page .cp-btn-primary:hover,
.cp-page .cp-btn-primary:focus-visible {
	box-shadow: 0 14px 28px rgba(4, 10, 28, 0.45), var(--cp-ui-ring);
	border-color: #78a6ff;
}

.tp-page .tp-btn-primary:hover,
.tp-page .tp-btn-primary:focus-visible,
.th-page .th-btn-primary:hover,
.th-page .th-btn-primary:focus-visible,
.tn-next-step-button:hover,
.tn-next-step-button:focus-visible {
	box-shadow: 0 14px 28px rgba(4, 10, 28, 0.45), var(--cp-ui-ring);
	border-color: #78a6ff;
	filter: none;
	outline: none;
}

.cp-page .cp-results-stat-filter {
	background: rgba(14, 33, 70, 0.92);
	border-color: var(--cp-ui-border);
	color: var(--cp-ui-text);
}

.cp-page .cp-results-stat-filter:hover,
.cp-page .cp-results-stat-filter:focus-visible {
	border-color: var(--cp-ui-border-strong);
	box-shadow: 0 14px 28px rgba(4, 10, 28, 0.44), var(--cp-ui-ring);
}

.cp-page :is(.cp-field label, .cp-field-label-row > label) {
	font-size: var(--tn-fs-small);
	font-weight: 700;
	color: #d9e7ff;
}

.cp-page :is(.cp-field-help, .cp-results-note, .cp-card-meta, .cp-subtitle-meta) {
	color: #a8bddc;
}

.cp-page :is(.cp-btn, .cp-page-link, .cp-results-stat-filter),
.tp-page :is(.tp-btn, .tp-cluster-links a, .tp-cluster-links .is-current),
.th-page :is(.th-btn, .th-link-card),
.main-navigation .main-nav ul li > a {
	min-height: var(--tn-touch-target);
}

.th-page .tn-section-toc {
	border-radius: 22px;
	border: 1px solid rgba(121, 152, 206, 0.42);
	background: linear-gradient(180deg, rgba(20, 38, 78, 0.97) 0%, rgba(15, 30, 64, 0.95) 100%);
	box-shadow: 0 20px 40px rgba(4, 10, 28, 0.42);
	padding: 18px 20px;
}

.gp-default-wrap {
	padding: 0 16px;
}

.gp-default-breadcrumb-wrap {
	padding-top: 12px;
}

.gp-default-public-page {
	background:
		radial-gradient(circle at 12% 8%, rgba(86, 163, 255, 0.2), transparent 24rem),
		radial-gradient(circle at 88% 12%, rgba(72, 201, 176, 0.14), transparent 26rem),
		linear-gradient(180deg, #070f24 0%, #09142f 55%, #0a1736 100%);
}

.gp-default-public-page #page,
.gp-default-public-page .site,
.gp-default-public-page .site-content,
.gp-default-public-page .content-area,
.gp-default-public-page .site-main {
	background: transparent;
}

.gp-default-public-page .inside-article {
	max-width: var(--tn-content-max-width);
	margin: 12px auto 24px;
	padding: 24px;
	border-radius: 24px;
	border: 1px solid rgba(121, 152, 206, 0.38);
	background: linear-gradient(180deg, rgba(20, 38, 78, 0.97) 0%, rgba(15, 30, 64, 0.95) 100%);
	box-shadow: 0 18px 40px rgba(4, 10, 28, 0.38);
	color: #eef6ff;
}

.gp-default-public-page .entry-title,
.gp-default-public-page .entry-content :is(h1, h2, h3, h4) {
	color: #f3f8ff;
}

.gp-default-public-page .entry-content a {
	color: #8ec1ff;
}

.gp-default-public-page .entry-content a:hover,
.gp-default-public-page .entry-content a:focus-visible {
	color: #ffffff;
}

@media (max-width: 640px) {
	.cp-page {
		--cp-ui-control-height: 44px;
	}

	.cp-page :is(.cp-btn, .cp-page-link, .cp-location-mode-option) {
		font-size: 0.84rem;
	}

	.cp-page .cp-field :is(input, select),
	.cp-page .cp-faq-search-input,
	#cp-predictor-form .cp-field :is(input, select) {
		font-size: 0.92rem;
	}

	.th-page .tn-section-toc,
	.gp-default-public-page .inside-article {
		padding: 16px;
		border-radius: 16px;
	}
}
