/**
 * TDS Component: Institutional Navigation
 * Version: 3.2.5 (Fully Synchronized with v2.3.3 Tokens)
 * Scope: Global Header, Section Rail, In-Page Rail, & Telemetry
 * Architecture: Tokenized Z-Index + Dynamic Physics
 */

/* ==========================================================================
   0. VIEWPORT SAFETY
   Preserve horizontal reflow instead of globally clipping overflow.
   ========================================================================== */

/* ==========================================================================
   1. GLOBAL HEADER (.uh-navbar)
   ========================================================================== */
.uh-navbar {
    height: var(--tds-header-h);
    border-bottom: 1px solid var(--tds-border);
    background-color: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: var(--tds-z-header) !important;
    transition: background-color var(--tds-motion-duration-standard) ease;
}

.uh-navbar-brand img { width: 140px; height: auto; display: block; }
/* ==========================================================================
   3. TERTIARY RAIL (In-Page Smart Nav)
   Canonical contract:
   - Root nav: .uh-inpage-sticky.js-smart-nav
   - Scroll shell: .uh-subnav-scroll
   - Link rail: .uh-subnav-links
   ========================================================================== */
.uh-inpage-sticky {
	position: -webkit-sticky !important;
	position: sticky !important;
	top: var(--uh-dynamic-header-height, 72px) !important;
	width: 100%;
	z-index: var(--tds-z-localbar) !important;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--tds-border);
	transition: transform var(--tds-motion-duration-smooth) var(--tds-motion-easing-productive);
}

.uh-inpage-sticky.subnav-hidden {
	transform: translateY(-100%);
	pointer-events: none;
}

/* ==========================================================================
   4. INTERNAL RAIL STYLING
   Shared component-owned styling for in-page smart nav
   ========================================================================== */
.uh-subnav-scroll {
	display: flex;
	align-items: center;
	min-height: 56px;
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.uh-subnav-scroll::-webkit-scrollbar {
	display: none;
}

.uh-subnav-links,
.uh-subnav-links.nav {
	display: flex;
	flex-wrap: nowrap !important;
	justify-content: center;
	align-items: center;
	gap: var(--tds-space-03);
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100%;
}

.uh-subnav-links .nav-item {
	flex: 0 0 auto;
}

.uh-subnav-links a,
.uh-subnav-links a:link,
.uh-subnav-links a:visited,
.uh-subnav-links .nav-link,
.uh-subnav-links .nav-link:link,
.uh-subnav-links .nav-link:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-height: var(--tds-tap-target-min);
	color: var(--tds-text-muted) !important;
	text-decoration: none !important;
	font-family: var(--tds-font-system);
	font-size: var(--tds-type-size-meta);
	font-weight: var(--tds-weight-medium);
	text-transform: uppercase;
	letter-spacing: var(--tds-type-track-label);
	padding: 1rem 0;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	transition:
		color var(--tds-motion-duration-snappy) var(--tds-motion-easing-expressive),
		border-color var(--tds-motion-duration-snappy) var(--tds-motion-easing-expressive),
		background-color var(--tds-motion-duration-snappy) var(--tds-motion-easing-expressive);
}

.uh-subnav-links a:hover,
.uh-subnav-links a:active,
.uh-subnav-links .nav-link:hover,
.uh-subnav-links .nav-link:active {
	color: var(--tds-brand-strong) !important;
	border-bottom-color: var(--tds-brand-a35);
}

.uh-subnav-links a:focus-visible,
.uh-subnav-links .nav-link:focus-visible {
	color: var(--tds-brand-strong) !important;
	border-bottom-color: var(--tds-brand-a35);
	background-color: var(--tds-brand-a04);
}

.uh-subnav-links .current-menu-item a,
.uh-subnav-links .nav-link.active,
.uh-subnav-links a.active,
.uh-subnav-links .nav-link.is-active,
.uh-subnav-links a.is-active,
.uh-subnav-links .nav-item.is-active > .nav-link,
.uh-subnav-links .is-active > .nav-link,
.uh-subnav-links .nav-link[aria-current="true"],
.uh-subnav-links a[aria-current="true"],
.uh-subnav-links .nav-link[aria-current="location"],
.uh-subnav-links a[aria-current="location"] {
	color: var(--tds-brand-strong) !important;
	border-bottom-color: var(--tds-brand) !important;
}

/* ==========================================================================
   Mobile / Tablet: swipeable tab rail with improved touch targets
   ========================================================================== */
@media (max-width: 991.98px) {
	.uh-subnav-scroll {
		padding-inline: 0.75rem;
		scroll-behavior: smooth;
		touch-action: pan-x;
		-webkit-overflow-scrolling: touch;
	}

	.uh-subnav-links,
	.uh-subnav-links.nav {
		justify-content: flex-start;
		width: max-content;
		min-width: max-content;
		gap: 1rem;
		padding-inline: 0;
	}

	.uh-subnav-links .nav-item {
		flex: 0 0 auto;
		padding-inline: 0.1rem;
	}

	.uh-subnav-links .nav-link,
	.uh-subnav-links a {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		min-height: var(--tds-tap-target-min);
		padding: 0.9rem 0.35rem;
		white-space: nowrap;
	}

	.uh-subnav-links .nav-link::before,
	.uh-subnav-links a::before {
		content: "";
		position: absolute;
		inset: -8px -6px;
	}

	.uh-subnav-scroll::before,
	.uh-subnav-scroll::after {
		content: "";
		position: sticky;
		top: 0;
		width: 16px;
		height: 100%;
		flex: 0 0 16px;
		pointer-events: none;
		z-index: 2;
	}

	.uh-subnav-scroll::before {
		left: 0;
		margin-right: -16px;
		background: linear-gradient(to right, rgba(255,255,255,0.96), rgba(255,255,255,0));
	}

	.uh-subnav-scroll::after {
		right: 0;
		margin-left: -16px;
		background: linear-gradient(to left, rgba(255,255,255,0.96), rgba(255,255,255,0));
	}
}

/* Navigation groups share one label and nested-link treatment across surfaces. */
.uh-nav-group-label {
	font-size: var(--tds-type-size-label);
	letter-spacing: var(--tds-type-track-label);
	text-transform: uppercase;
	font-weight: var(--tds-weight-medium);
	color: var(--tds-text-muted);
	margin: var(--tds-space-03) 0 var(--tds-space-01);
}
.uh-nav-pages ul > .uh-nav-group-label:first-child,
.uh-sidecar ul > .uh-nav-group:first-child > .uh-nav-group-label,
.uh-footer__directory-column > .uh-nav-group:first-child > .uh-nav-group-label { margin-top: 0; }
.uh-footer__directory .uh-nav-children > li > a,
.uh-footer__directory .uh-nav-group-link > a { padding-inline-start: var(--tds-space-xs); }
.uh-nav-pages a[aria-current="page"],
#panel-idle-state a[aria-current="page"],
.uh-footer__directory a[aria-current="page"] {
	color: var(--tds-brand-strong);
	background: var(--tds-brand-a04);
	font-weight: var(--tds-weight-medium);
}
/* ==========================================================================
   5. SEARCH NEXUS & TELEMETRY
   ========================================================================== */
.uh-header-search {
    background-color: #F9FAFB;
    border: 1px solid var(--tds-border);
    border-radius: var(--tds-radius-sm);
    padding: 0 var(--tds-space-02);
    transition: border-color var(--tds-motion-duration-standard) ease;
}
.uh-header-search:focus-within {
    border-color: var(--tds-brand);
    background-color: #FFFFFF;
}
.uh-header-search-input {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    font-family: var(--tds-font-system);
    font-size: var(--tds-type-size-meta);
    color: var(--tds-text-main);
}

.uh-header-search-wrap { position: relative !important; }
#uh-header-search-dd {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: max(100%, 18rem);
    min-width: 0;
    max-width: min(calc(100vw - 2rem), 32rem);
    background-color: #FFFFFF !important;
    border: 1px solid var(--tds-border);
    border-radius: var(--tds-radius-md);
    box-shadow: var(--tds-shadow-lg);
    z-index: var(--tds-z-overlay) !important;
    max-height: 65vh;
    overflow-y: auto;
}
.uh-suggest-item { background-color: #FFFFFF; transition: background-color var(--tds-motion-duration-snappy) ease; }
.uh-suggest-item:hover { background-color: #F9FAFB; }
.uh-suggest-item mark { background-color: var(--tds-brand-a12); color: var(--tds-text-main); font-weight: var(--tds-weight-semibold); }

/* ==========================================================================
   DEEP SPACE TELEMETRY DASHBOARD
   ========================================================================== */

/* THE FIX: Strips the default browser blue */

/* THE FIX: Turns the blue text into muted slate */

/* THE FIX: Turns text pure white on hover */

/**
 * Section-level continuation link
 * Used for "View all ..." routes in hub chapters.
 */
.uh-section-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: var(--tds-font-system);
    font-size: var(--tds-type-size-ui);
    font-weight: var(--tds-weight-semibold);
    line-height: var(--tds-type-line-ui);
    color: var(--tds-brand-strong);
    text-decoration: none;
}

.uh-section-link:hover,
.uh-section-link:focus-visible {
    color: var(--tds-brand-strong);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/**
 * Rail/sidebar text roles
 * Neutral labels for navigation rails and sidebars.
 */
.uh-rail-label,
.uh-record-rail-label,
.uh-sidebar-label {
	display: block;
	margin: 0 0 var(--tds-space-03);
	font-family: var(--tds-font-system);
	font-size: var(--tds-type-size-label);
	font-weight: var(--tds-weight-medium);
	line-height: var(--tds-type-line-label);
	letter-spacing: var(--tds-type-track-label);
	text-transform: uppercase;
	color: var(--tds-text-muted);
}

/* ==========================================================================
   6. HOMEPAGE PILLAR PREVIEW RAIL
   Clarifies that the deep-space telemetry bar controls the hero preview.
   ========================================================================== */

.uh-telemetry-intent {
	min-width: 9.5rem;
}

.uh-telemetry-intent__label {
	color: var(--tds-ds-text-main);
	font-size: var(--tds-type-size-label);
	font-weight: var(--tds-weight-medium);
	letter-spacing: var(--tds-type-track-label);
	text-transform: uppercase;
}

.uh-telemetry-intent__hint {
	color: var(--tds-ds-text-muted);
	font-size: var(--tds-type-size-meta);
	line-height: var(--tds-type-line-meta);
}

.uh-nav-item--preview {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 48px;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--tds-radius-sm);
	background: rgba(255, 255, 255, 0.025);
	color: inherit;
	text-align: left;
	cursor: pointer;
	text-decoration: none;
	transition:
		background-color var(--tds-motion-duration-snappy) ease,
		border-color var(--tds-motion-duration-snappy) ease,
		transform var(--tds-motion-duration-snappy) ease;
}

.uh-nav-item--preview:hover,
.uh-nav-item--preview:focus-visible {
	background: rgba(255, 255, 255, 0.065);
	border-color: rgba(255, 255, 255, 0.18);
	transform: translateY(-1px);
}

.uh-nav-item--preview.is-active {
	background: var(--tds-brand-a12);
	border-color: var(--tds-brand-a35);
}

.uh-nav-copy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.uh-nav-action {
	margin-left: 0.25rem;
	color: var(--tds-ds-text-muted);
	font-size: var(--tds-type-size-label);
	font-weight: var(--tds-weight-medium);
	letter-spacing: var(--tds-type-track-label);
	text-transform: uppercase;
	white-space: nowrap;
}

.uh-nav-item--preview:hover .uh-nav-action,
.uh-nav-item--preview:focus-visible .uh-nav-action,
.uh-nav-item--preview.is-active .uh-nav-action {
	color: #ffffff;
}

@media (max-width: 991.98px) {

	.uh-nav-item--preview {
		flex: 0 0 auto;
		min-width: 8.75rem;
	}
}

@media (max-width: 767.98px) {
	.uh-nav-action {
		display: none;
	}

	.uh-nav-item--preview {
		min-width: 8rem;
	}
}

/* ==========================================================================
   TELEMETRY TYPOGRAPHY REFINEMENT (Rubik-driven / 600 max)
   ========================================================================== */

.uh-telemetry-intent__label,
.uh-telemetry-intent__hint,
.uh-nav-label,
.uh-nav-sub {
	font-family: "Rubik", var(--tds-font-system), sans-serif;
	font-style: normal;
}

.uh-telemetry-intent__label {
	font-size: var(--tds-type-size-label);
	font-weight: var(--tds-weight-medium);
	line-height: var(--tds-type-line-label);
	letter-spacing: var(--tds-type-track-label);
	text-transform: uppercase;
}

.uh-telemetry-intent__hint {
	font-size: var(--tds-type-size-meta);
	font-weight: var(--tds-weight-regular);
	line-height: var(--tds-type-line-meta);
	letter-spacing: var(--tds-type-track-meta);
	color: var(--tds-ds-text-muted);
}

.uh-nav-item--preview.is-active .uh-nav-sub {
	font-weight: var(--tds-weight-semibold);
	color: #ffffff !important;
}

.uh-nav-item--preview.is-active .uh-nav-label {
	font-weight: var(--tds-weight-medium);
	color: #ffffff !important;
}


/* ==========================================================================
   HEADER EXPLORE TRIGGER
   nav.css owns this component
   ========================================================================== */

#uh-omni-trigger-desktop,
#uh-omni-trigger-mobile{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:0.55rem;
	min-height:var(--tds-tap-target-min);
	padding:0.25rem 0.5rem;
	border:none;
	background:transparent;
	text-decoration:none;
	line-height:1;
}

/* Label */
.uh-directory-trigger-label{
	display:inline-block;
	font-family:"Rubik",var(--tds-font-system),sans-serif;
	font-size:var(--tds-type-size-meta);
	font-weight:var(--tds-weight-medium);
	line-height:1;
	letter-spacing:var(--tds-type-track-label);
	text-transform:uppercase;
	color:var(--tds-text-main);
	white-space:nowrap;
	transform:translateY(1px);
	transition:
		color 180ms ease,
		transform 180ms ease;
}

/* Icon */
.uh-nav-icon-wrapper--desktop,
.uh-nav-icon-wrapper--mobile{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	flex:0 0 18px;
}

.uh-sidebar-icon,
.uh-icon-deploy,
.uh-icon-retract{
	width:18px;
	height:18px;
	display:block;
}

/* States */
#uh-omni-trigger-desktop:hover .uh-directory-trigger-label,
#uh-omni-trigger-mobile:hover .uh-directory-trigger-label,
#uh-omni-trigger-desktop:focus-visible .uh-directory-trigger-label,
#uh-omni-trigger-mobile:focus-visible .uh-directory-trigger-label,
body.is-directory-open .uh-directory-trigger-label{
	color:var(--tds-brand-strong);
}

#uh-omni-trigger-desktop:hover .uh-directory-trigger-label,
#uh-omni-trigger-mobile:hover .uh-directory-trigger-label{
	transform:translateY(0);
}

/* ==========================================================================
   MOBILE HEADER + SECTIONS TRIGGER
   ========================================================================== */

@media (max-width: 575.98px) {
	.uh-navbar {
		height: 64px;
	}

	.uh-navbar .container-fluid {
		padding-inline: 1rem !important;
	}

	.uh-navbar-brand img {
		width: 122px;
	}

	#uh-omni-trigger-mobile {
		min-width: var(--tds-tap-target-min);
		min-height: var(--tds-tap-target-min);
		padding-inline: 0.35rem !important;
		gap: 0.45rem;
	}

	#uh-omni-trigger-mobile .uh-directory-trigger-label {
		font-size: var(--tds-type-size-label);
		font-weight: var(--tds-weight-medium);
		letter-spacing: var(--tds-type-track-label);
	}

	#uh-omni-trigger-mobile .uh-sidebar-icon {
		width: 17px;
		height: 17px;
	}
}

/* ==========================================================================
   NAV ACCESSIBILITY NORMALIZATION (50+ LEGIBILITY FLOOR)
   Safe override layer — keep at end of file
   ========================================================================== */

.uh-subnav-links a,
.uh-subnav-links .nav-link,
.uh-header-search-input,
.uh-telemetry-intent__hint,
.uh-nav-sub {
	font-size: var(--tds-type-size-meta);
}

.uh-telemetry-intent__label,
.uh-nav-label,
.uh-nav-action {
	font-size: var(--tds-type-size-label);
}

.uh-subnav-links a,
.uh-subnav-links .nav-link,
#uh-omni-trigger-desktop,
#uh-omni-trigger-mobile,
.uh-nav-item--preview {
	min-height: var(--tds-tap-target-min);
}

#uh-omni-trigger-desktop,
#uh-omni-trigger-mobile {
	min-width: var(--tds-tap-target-min);
}

/* NAV-01 registry header. Existing page-owned navigation rules above stay intact. */
.uh-nav-header { background: var(--tds-nav-bg) !important; backdrop-filter: blur(var(--tds-nav-blur)); }
.uh-nav-row { display: flex; align-items: center; justify-content: space-between; gap: var(--tds-nav-item-gap); width: 100%; height: var(--tds-header-h); padding-inline: var(--tds-nav-inline-space); font-family: var(--tds-font-system); }
.uh-nav-row > * { flex: 0 0 auto; }
.uh-nav-brand { display: flex; align-items: center; min-height: var(--tds-nav-item-min-h); }
.uh-nav-brand img { display: block; width: var(--tds-nav-logo-w); height: auto; }
.uh-nav-section { display: flex; flex-direction: column; justify-content: center; height: var(--tds-header-h); border-bottom: var(--tds-nav-current-bar) solid transparent; color: var(--tds-nav-link-color); font-size: var(--tds-nav-link-size); font-weight: var(--tds-weight-medium); line-height: var(--tds-type-line-ui); text-decoration: none; white-space: nowrap; }
.uh-nav-section[aria-current] { border-bottom-color: var(--tds-nav-current-color); color: var(--tds-nav-current-color); }
.uh-nav-section:hover { color: var(--tds-nav-link-color-hover); }
.uh-nav-descriptor { display: block; color: var(--tds-nav-descriptor-color); font-size: var(--tds-nav-descriptor-size); font-weight: var(--tds-weight-regular); }
.uh-nav-panel-trigger { display: inline-flex; align-items: center; justify-content: center; gap: var(--tds-space-02); min-height: var(--tds-nav-item-min-h); min-width: var(--tds-nav-item-min-h); padding: 0; border: 0; background: transparent; color: var(--tds-nav-link-color); font: inherit; font-size: var(--tds-nav-link-size); white-space: nowrap; }
.uh-nav-search-short, .uh-nav-mobile { display: none; }
.uh-nav-panel-trigger[aria-expanded="true"] { color: var(--tds-nav-current-color); background: var(--tds-panel-row-active); box-shadow: inset 0 calc(-1 * var(--tds-nav-current-bar)) currentColor; }
.uh-nav-cta { white-space: nowrap; }
.uh-nav-header[data-fit="1"] .uh-nav-search-long, .uh-nav-header[data-fit="2"] .uh-nav-search-long { display: none; }
.uh-nav-header[data-fit="1"] .uh-nav-search-short, .uh-nav-header[data-fit="2"] .uh-nav-search-short { display: inline; }
.uh-nav-header[data-fit="2"] .uh-nav-descriptor { display: none; }
.uh-nav-header[data-fit="3"] .uh-nav-desktop { display: none; }
.uh-nav-header[data-fit="3"] #uh-omni-trigger-desktop { display: none; }
.uh-nav-header[data-fit="3"] .uh-nav-mobile { display: flex; align-items: center; gap: var(--tds-nav-item-gap); }
@media (max-width: 991.98px) {
  .uh-nav-header .uh-nav-desktop { display: none; }
  .uh-nav-header #uh-omni-trigger-desktop { display: none; }
  .uh-nav-header .uh-nav-mobile { display: flex; align-items: center; gap: var(--tds-nav-item-gap); }
}
