/**
 * Investment Outlook — aligned with stockDetails (twentytwentyfour-child): palette + outer stack.
 * Inner components keep .ms-io-* structure; colors follow stockDetailsWrap (#1a1f24, #fff, #cdcdcd, silver border).
 */

.ms-io-page-wrap {
	margin-top: 0;
	margin-bottom: 0;
}

.stockDetailsContent.ms-io-outlook-root {
	margin-left: auto !important;
	margin-right: auto !important;
}

.stockDetailsStack.ms-io-outlook-stack {
	width: 70%;
	max-width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}

.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook p,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook li,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook ul,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__prose,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__rationale,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__ai-rc-text,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__section-lede,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__5y-lede,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__fineprint,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__disclaimer,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__disclaimer--solo,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__valuation-toggle-legend,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__profile-subtitle,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__h,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__5y-sub-title,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__list,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__callout-text,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__ai-teaser-text,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__fit-lede {
	text-align: left !important;
}

/* Keep stack children inside the centered column (theme uses 100vw/96vw on stockDetailsWrap + detailsTable-top). */
.stockDetailsStack.ms-io-outlook-stack > .ms-io-stock-hero,
.stockDetailsStack.ms-io-outlook-stack > .ms-io-details-top,
.stockDetailsStack.ms-io-outlook-stack > .stockDetailsWrap.ms-io-outlook-card {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

@media (max-width: 782px) {
	.stockDetailsStack.ms-io-outlook-stack {
		width: 94%;
	}
}

@media screen and (max-width: 1000px) {
	.stockDetailsStack.ms-io-outlook-stack .stockDetailsWrap.ms-io-outlook-card {
		width: 100% !important;
		max-width: 100% !important;
	}
}

@media screen and (max-width: 460px) {
	.stockDetailsStack.ms-io-outlook-stack .ms-io-details-top {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* ----- Hero row (logo | ticker + company | price) — mirrors stockDetails header rhythm ----- */
.ms-io-stock-hero {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: end;
	gap: 0.75rem 1.25rem;
	padding: var(--wp--preset--spacing--10, 0.75rem) var(--wp--preset--spacing--10, 0.75rem) var(--wp--preset--spacing--20, 1rem);
	margin: 0;
}

@media (max-width: 782px) {
	.ms-io-stock-hero {
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto auto;
	}

	.ms-io-stock-hero__center {
		grid-column: 1 / -1;
		order: 2;
	}

	.ms-io-stock-hero__quote {
		grid-column: 2;
		grid-row: 1;
	}
}

.ms-io-stock-hero__logo {
	flex: 0 0 auto;
}

.ms-io-stock-logo-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: linear-gradient(145deg, #2a3239 0%, #1a1f24 100%);
	border: 1px solid rgba(192, 192, 192, 0.35);
	color: #e8e6e3;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
	box-sizing: border-box;
}

.ms-io-stock-hero__titles {
	flex: 1 1 200px;
	min-width: 0;
}

.ms-io-stock-ticker {
	margin: 0 0 0.15em;
	font-size: clamp(1.75rem, 4vw, 2.35rem);
	line-height: 1.1;
	font-weight: 700;
	color: #ffffff;
	font-family: inherit;
}

.ms-io-stock-company {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.25;
	font-weight: 400;
	color: #cdcdcd;
	font-family: inherit;
}

.ms-io-stock-hero__center {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-width: 0;
}

.ms-io-stock-outlook-title {
	margin: 0;
	font-size: clamp(1.15rem, 2.5vw, 1.65rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--ms-io-accent, #d4a012);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.ms-io-stock-hero__quote {
	flex: 0 1 160px;
	text-align: right;
	margin-left: auto;
}

.ms-io-stock-price {
	font-size: 1.6rem;
	font-weight: 600;
	color: #ffffff;
	line-height: 1.1;
}

.ms-io-stock-change {
	font-size: 0.95rem;
	color: #cdcdcd;
	margin-top: 0.2rem;
}

.ms-io-details-top .ms-io-back-to-stock {
	color: #cdcdcd;
	text-decoration: none;
	font-size: 0.85rem;
}

.ms-io-details-top .ms-io-back-to-stock:hover {
	color: #ffd700;
	text-decoration: underline;
}

/* Inner card: theme already styles .stockDetailsWrap; contain horizontal scroll inside stack */
.stockDetailsWrap.ms-io-outlook-card {
	overflow-x: auto;
	overflow-y: visible;
}

.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook p,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__prose,
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__rationale {
	max-width: none;
}

.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook {
	--ms-io-surface: rgba(255, 255, 255, 0.04);
	--ms-io-elevated: rgba(255, 255, 255, 0.06);
	--ms-io-border: rgba(192, 192, 192, 0.22);
	--ms-io-border-strong: rgba(192, 192, 192, 0.35);
	--ms-io-text: #ffffff;
	--ms-io-muted: #cdcdcd;
	--ms-io-faint: #9a9a9a;
	--ms-io-accent: #d4a012;
	--ms-io-bear: #f87171;
	--ms-io-base: #fbbf24;
	--ms-io-bull: #4ade80;
	--ms-io-font-ui: inherit;
	--ms-io-font-display: inherit;
	--ms-io-radius: 12px;
	--ms-io-radius-sm: 8px;

	box-sizing: border-box;
	margin: 0;
	padding: clamp(1rem, 3vw, 1.75rem) clamp(1rem, 2.5vw, 1.5rem) 1.5rem;
	max-width: none;
	color: var(--ms-io-text);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.55;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}

.ms-io-outlook *,
.ms-io-outlook *::before,
.ms-io-outlook *::after {
	box-sizing: border-box;
}

.ms-io-outlook h2,
.ms-io-outlook h3,
.ms-io-outlook h4 {
	font-family: inherit;
	font-weight: 700;
	letter-spacing: normal;
	color: var(--ms-io-text);
	margin: 0;
}

.ms-io-outlook p,
.ms-io-outlook li {
	color: var(--ms-io-text);
}

.ms-io__hero--compact {
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--ms-io-border);
}

.ms-io__tagline--inline {
	margin: 0.5rem 0 0.75rem;
	max-width: 62ch;
	font-size: 0.88rem;
	color: var(--ms-io-muted);
	line-height: 1.45;
}

.ms-io__profile-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin-bottom: 0.5rem;
}

.ms-io__valuation-toggle {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 1rem;
	padding: 0.35rem;
	border-radius: 12px;
	border: 1px solid var(--ms-io-border-strong, rgba(192, 192, 192, 0.35));
	background: var(--ms-io-surface, rgba(255, 255, 255, 0.04));
	max-width: 100%;
}

.ms-io__valuation-toggle-btn {
	display: inline-block;
	padding: 0.45rem 0.75rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ms-io-muted, #cdcdcd);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}

.ms-io__valuation-toggle-btn:hover {
	color: var(--ms-io-text, #fff);
}

.ms-io__valuation-toggle-btn.is-active {
	background: var(--ms-io-accent, #d4a012);
	color: #000;
}

.ms-io__valuation-toggle-legend {
	margin: 0.35rem 0 1.15rem;
	padding: 0;
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--ms-io-muted, #9ca3af);
	max-width: 100%;
}

.ms-io__profile-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.4rem 0.85rem 0.4rem 0.5rem;
	border-radius: 999px;
	border: 1px solid var(--ms-io-border-strong);
	background: var(--ms-io-surface);
	font-size: 0.8125rem;
}

.ms-io__profile-pill-label {
	color: var(--ms-io-muted);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.65rem;
	padding-left: 0.35rem;
}

.ms-io__profile-pill-value {
	font-weight: 700;
	font-size: 0.95rem;
}

.ms-io__profile-pill--attractive .ms-io__profile-pill-value {
	color: var(--ms-io-bull);
}

.ms-io__profile-pill--balanced .ms-io__profile-pill-value {
	color: var(--ms-io-base);
}

.ms-io__profile-pill--speculative .ms-io__profile-pill-value {
	color: #fb923c;
}

.ms-io__profile-pill--high_upside .ms-io__profile-pill-value {
	color: var(--ms-io-bull);
}

.ms-io__profile-pill--stretched .ms-io__profile-pill-value {
	color: #f87171;
}

.ms-io__profile-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
}

.ms-io__profile-subtitle {
	margin: 0;
	max-width: 100%;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--ms-io-muted);
}

.ms-io__callout {
	margin: 0 0 0.75rem;
	padding: 0.85rem 1rem;
	border-radius: var(--ms-io-radius-sm);
	font-size: 0.875rem;
	line-height: 1.6;
	border: 1px solid rgba(96, 165, 250, 0.35);
	background: rgba(59, 130, 246, 0.1);
	color: #bfdbfe;
}

.ms-io__callout--info {
	border-color: rgba(96, 165, 250, 0.35);
	background: rgba(59, 130, 246, 0.1);
	color: #bfdbfe;
}

.ms-io__callout--warning {
	border-color: rgba(248, 113, 113, 0.45);
	background: rgba(127, 29, 29, 0.22);
	color: #fecaca;
}

.ms-io__callout--warning .ms-io__callout-cta {
	color: #fef08a;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ms-io__callout--warning .ms-io__callout-cta:hover {
	color: #fff;
}

.ms-io__callout-text {
	margin: 0 0 0.5rem;
}

.ms-io__metric--primary dt {
	font-weight: 600;
}

.ms-io__metric-muted,
.ms-io__metric .ms-io__metric-muted {
	color: var(--ms-io-faint, #a8a29e);
	font-size: 0.82em;
	font-weight: 500;
}

.ms-io__metric--secondary dd {
	opacity: 0.92;
}

.ms-io__disclaimer {
	margin: 0;
	font-size: 0.72rem;
	line-height: 1.45;
	color: var(--ms-io-faint);
	font-style: italic;
	max-width: 68ch;
}

.ms-io__disclaimer--solo {
	margin-top: 0.35rem;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.ms-io__section--valuation-cards {
	margin-top: 0.75rem;
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

/* Financial quality + style fit — separate cards, shared stack */
.ms-io__quality-stack {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 0.85rem;
}

.ms-io__quality-stack > .ms-io__section--block {
	margin-top: 0;
}

.ms-io__section--financial-quality,
.ms-io__section--style-fit {
	padding: 1rem 1.05rem 1.05rem;
}

.ms-io__section-head--split {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.35rem 1.25rem;
	margin-bottom: 0.85rem;
}

.ms-io__section-head--split .ms-io__section-head-main {
	flex: 1 1 auto;
	min-width: 0;
}

.ms-io__section-head--split .ms-io__h {
	margin-bottom: 0;
}

.ms-io__fq-score-head {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.1rem;
	margin: 0;
	padding-bottom: 0.15rem;
	text-align: right;
	white-space: nowrap;
}

.ms-io__fq-score-head-label {
	font-size: 0.68rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ms-io-muted, #9ca3af);
}

.ms-io__fq-score-head-value {
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	color: var(--ms-io-text, #f3f4f6);
}

.ms-io__fq-score-head-max {
	font-size: 0.72rem;
	font-weight: 500;
	color: var(--ms-io-muted, #9ca3af);
}

.ms-io__fq-strip {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 960px) {
	.ms-io__fq-strip {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.ms-io__fq-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ms-io__fq-cell:last-child:nth-child(5) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 0.225rem);
		max-width: 12rem;
	}
}

.ms-io__fq-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.28rem;
	margin: 0;
	padding: 0.65rem 0.45rem 0.7rem;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(255, 255, 255, 0.03);
	text-align: center;
	min-height: 4.5rem;
}

.ms-io__fq-dot {
	flex: 0 0 auto;
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.ms-io__fq-dot--positive {
	background: #22c55e;
	box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.18);
}

.ms-io__fq-dot--neutral {
	background: #eab308;
	box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.16);
}

.ms-io__fq-dot--caution {
	background: #f97316;
	box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.16);
}

.ms-io__fq-dot--negative {
	background: #ef4444;
	box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.16);
}

.ms-io__fq-cell-label {
	font-size: 0.68rem;
	font-weight: 500;
	line-height: 1.25;
	color: var(--ms-io-muted, #9ca3af);
}

.ms-io__fq-cell-value {
	font-size: 0.82rem;
	font-weight: 650;
	line-height: 1.2;
	color: var(--ms-io-text, #f3f4f6);
}

.ms-io__section--style-fit .ms-io__section-head--tight {
	margin-bottom: 0.55rem;
}

.ms-io__section-lede--inline {
	margin: 0.35rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	max-width: none;
}

.ms-io__section--style-fit .ms-io__fit-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ms-io__fit-tag {
	display: inline-block;
	margin: 0;
	padding: 0.42rem 0.72rem;
	border-radius: 999px;
	border: 1px solid rgba(212, 160, 18, 0.35);
	background: rgba(212, 160, 18, 0.08);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ms-io-text, #e5e7eb);
}

.ms-io-outlook .ms-io-outlook-card {
	padding-top: 0.35rem;
}

/* Card blocks — slightly tighter than before */
.ms-io-outlook .ms-io__section--block {
	margin-top: 1.15rem;
	margin-bottom: 0;
	padding: 1rem 1rem 1.1rem;
	border-radius: var(--ms-io-radius-sm);
	background: rgba(0, 0, 0, 0.18);
	border: 1px solid var(--ms-io-border);
}

/* Single “Five-year outlook” card: anchors + paths + $10k */
.ms-io-outlook .ms-io__section--5y-outlook {
	margin-top: 0.85rem;
	padding: 1.05rem 1rem 1.2rem;
}

.ms-io-outlook .ms-io__section--5y-outlook > .ms-io__section-head {
	margin-bottom: 0.45rem;
}

.ms-io__5y-lede {
	margin: 0 0 1.15rem;
	font-size: 0.875rem;
	line-height: 1.65;
	color: var(--ms-io-muted);
	max-width: 100%;
}

.ms-io__5y-sub {
	margin-top: 1.25rem;
	padding-top: 1.15rem;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.ms-io__5y-sub:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.ms-io__5y-sub-title {
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--ms-io-text);
	letter-spacing: 0.02em;
	line-height: 1.45;
}

.ms-io__5y-sub-title--invest-10k {
	font-size: 1rem;
	font-weight: 650;
	margin-bottom: 0.75rem;
}

.ms-io__5y-sub--invest-10k {
	margin-top: 1.05rem;
}

.ms-io-outlook .ms-io__section--5y-outlook .ms-io__invest-10k {
	margin-top: 0;
}

.ms-io-outlook .ms-io__section--must-go-right {
	border-left: 3px solid rgba(74, 222, 128, 0.55);
}

.ms-io-outlook .ms-io__section--risk {
	border-left: 3px solid rgba(248, 113, 113, 0.45);
}

.ms-io__section-lede {
	display: block;
	width: 100%;
	margin: 0.5rem 0 0;
	padding: 0;
	font-size: 0.875rem;
	line-height: 1.65;
	color: var(--ms-io-muted);
	max-width: 100%;
	text-align: left;
}

.ms-io__section-head .ms-io__section-lede {
	margin-top: 0.65rem;
	margin-bottom: 0;
}

.ms-io__val-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

@media (max-width: 782px) {
	.ms-io__val-cards {
		grid-template-columns: 1fr;
	}
}

.ms-io__val-card {
	border-radius: var(--ms-io-radius);
	padding: 1.35rem 1.15rem 1.25rem;
	text-align: center;
	min-width: 0;
}

.ms-io__val-card--dcf {
	background: linear-gradient(145deg, rgba(6, 182, 212, 0.18), rgba(59, 130, 246, 0.12));
	border: 1px solid rgba(34, 211, 238, 0.35);
}

.ms-io__val-card--ms {
	background: linear-gradient(145deg, rgba(212, 160, 18, 0.22), rgba(180, 120, 10, 0.12));
	border: 1px solid rgba(212, 160, 18, 0.45);
}

.ms-io__val-card--fpe {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
	border: 1px solid var(--ms-io-border-strong);
}

.ms-io__val-card-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	font-weight: 600;
}

h5.ms-io__val-card-title {
	font-size: inherit;
	font-weight: 600;
}

.ms-io__val-card--dcf .ms-io__val-card-title,
.ms-io__val-card--dcf .ms-io__val-card-value {
	color: #22d3ee;
}

.ms-io__val-card--ms .ms-io__val-card-title,
.ms-io__val-card--ms .ms-io__val-card-value {
	color: var(--ms-io-accent, #d4a012);
}

.ms-io__fv-confidence {
	margin: 0.65rem 0 0;
	padding-top: 0.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 0.8rem;
	color: var(--ms-io-muted, #94a3b8);
	line-height: 1.4;
}

.ms-io__fv-confidence .ms-conf-badge {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.15rem 0.45rem;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 600;
	vertical-align: middle;
}

.ms-io__fv-confidence .ms-conf-high {
	background: rgba(34, 197, 94, 0.2);
	color: #4ade80;
}

.ms-io__fv-confidence .ms-conf-medium {
	background: rgba(245, 158, 11, 0.2);
	color: #fbbf24;
}

.ms-io__fv-confidence .ms-conf-low {
	background: rgba(239, 68, 68, 0.2);
	color: #f87171;
}

.ms-io__moderation-note,
.ms-io__reviewed-warning {
	margin: 0.5rem 0 0;
	font-size: 0.78rem;
	line-height: 1.45;
	color: #cbd5e1;
}

.ms-io__reviewed-warning {
	color: #fbbf24;
}

.ms-io__val-card--fpe .ms-io__val-card-title,
.ms-io__val-card--fpe .ms-io__val-card-value {
	color: #c0c0c0;
}

.ms-io__val-card-value {
	margin: 0 0 0.35rem;
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
}

.ms-io__val-card-sub {
	margin: 0 auto 0.75rem;
	padding: 0 0.35rem;
	max-width: 16rem;
	font-size: 0.8125rem;
	color: var(--ms-io-faint, #9a9a9a);
	line-height: 1.55;
	hyphens: auto;
	overflow-wrap: anywhere;
	word-break: normal;
}

.ms-io__val-card-margin {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
}

/* Same hues as .ms-io__scenario--bull / --bear (override theme .greenUp / .redDown on stock pages). */
.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__val-card-margin--pos {
	color: var(--ms-io-bull, #4ade80) !important;
	background: none !important;
	text-shadow: none !important;
}

.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__val-card-margin--neg {
	color: var(--ms-io-bear, #f87171) !important;
	background: none !important;
	text-shadow: none !important;
}

.ms-preview-gate[data-preview-context="investment_outlook"] {
	min-height: 420px;
}

.ms-io-outlook--preview {
	width: 100%;
}

.ms-io__val-card-margin--neutral {
	color: var(--ms-io-faint, #9a9a9a);
	font-weight: 500;
	font-size: 0.9rem;
}

.ms-io__h--gold {
	color: var(--ms-io-accent, #d4a012);
}

.ms-io__section--ai-rc {
	border-left: 3px solid var(--ms-io-accent, #d4a012);
	padding-left: 1rem;
}

.ms-io__ai-rc-text {
	margin: 0;
	line-height: 1.65;
	color: var(--ms-io-text, #e5e7eb);
}

.stockDetailsWrap.ms-io-outlook-card .ms-io-outlook .ms-io__ai-rc-text {
	max-width: 72ch;
}

.ms-io__forward-pe {
	margin-top: 1rem;
}

.ms-io__h--sub {
	font-size: 0.95rem;
	margin: 0 0 0.35rem;
}

.ms-io__forward-pe-note {
	margin: 0 0 0.5rem;
	color: var(--ms-io-faint, #a8a29e);
}

.ms-io__pe-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.ms-io__pe-table th,
.ms-io__pe-table td {
	border: 1px solid var(--ms-io-border, #3d454d);
	padding: 0.45rem 0.5rem;
	text-align: center;
}

.ms-io__pe-table th {
	color: var(--ms-io-faint, #a8a29e);
	font-weight: 600;
}

.ms-io__section-head {
	display: block;
	width: 100%;
	margin-bottom: 0.85rem;
}

.ms-io__section-head--tight {
	margin-bottom: 0.85rem;
}

.ms-io__section-head--tight .ms-io__h {
	margin-bottom: 0;
}

.ms-io__section-head--tight .ms-io__h::after {
	margin-top: 0.5rem;
}

.ms-io-outlook .ms-io__section--block {
	display: block;
}

.ms-io-outlook .ms-io__section--block > .ms-io__list,
.ms-io-outlook .ms-io__section--block > .ms-io__prose,
.ms-io-outlook .ms-io__section--block > ul {
	margin-top: 0.35rem;
}

.ms-io__ai-teaser--compact {
	margin-top: 0.85rem;
	padding: 0.65rem 0.85rem;
	border-radius: var(--ms-io-radius-sm);
	border: 1px solid rgba(167, 139, 250, 0.22);
	background: rgba(109, 40, 217, 0.08);
}

.ms-io__ai-teaser--compact .ms-io__ai-teaser-title {
	font-size: 0.8rem;
	margin-bottom: 0.25rem;
}

.ms-io__ai-teaser--compact .ms-io__ai-teaser-text {
	font-size: 0.78rem;
	margin: 0;
	color: #c4b5fd;
	line-height: 1.4;
}

/* Sections */
.ms-io__section {
	margin-bottom: clamp(1.35rem, 2.8vw, 1.85rem);
}

.ms-io__section:last-child {
	margin-bottom: 0;
}

.ms-io__h {
	font-size: clamp(1.15rem, 2.5vw, 1.35rem);
	font-weight: 700;
	margin: 0 0 0.35rem;
	color: var(--ms-io-text);
}

.ms-io__h::after {
	content: "";
	display: block;
	width: 2.5rem;
	height: 3px;
	margin-top: 0.5rem;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--ms-io-accent), transparent);
	opacity: 0.85;
}

.ms-io__lede {
	margin: 0;
	font-size: 0.9rem;
	color: var(--ms-io-muted);
	max-width: 60ch;
	line-height: 1.5;
}

.ms-io__muted {
	font-size: 0.875rem;
	color: var(--ms-io-muted);
}

.ms-io__fineprint {
	margin: 1rem 0 0;
	font-size: 0.78rem;
	color: var(--ms-io-faint);
	line-height: 1.45;
	max-width: 65ch;
}

/* Scenarios */
.ms-io__scenarios {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}

@media (max-width: 560px) {
	.ms-io__scenarios {
		grid-template-columns: 1fr;
	}
}

.ms-io__scenario {
	position: relative;
	padding: 1.1rem 1rem 1rem;
	text-align: center;
	border-radius: var(--ms-io-radius-sm);
	background: var(--ms-io-elevated);
	border: 1px solid var(--ms-io-border);
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.ms-io__scenario:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

.ms-io__scenario--bear {
	border-color: rgba(248, 113, 113, 0.22);
	box-shadow: 0 0 0 1px rgba(248, 113, 113, 0.06) inset;
}

.ms-io__scenario--base {
	border-color: rgba(251, 191, 36, 0.22);
	box-shadow: 0 0 0 1px rgba(251, 191, 36, 0.06) inset;
}

.ms-io__scenario--bull {
	border-color: rgba(74, 222, 128, 0.22);
	box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.06) inset;
}

.ms-io__scenario-label {
	display: block;
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--ms-io-muted);
	margin-bottom: 0.5rem;
}

.ms-io__scenario-val {
	font-family: inherit;
	font-size: clamp(1.5rem, 3.5vw, 1.85rem);
	font-weight: 800;
	display: block;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.ms-io__scenario--bear .ms-io__scenario-val {
	color: var(--ms-io-bear);
}

.ms-io__scenario--base .ms-io__scenario-val {
	color: var(--ms-io-base);
}

.ms-io__scenario--bull .ms-io__scenario-val {
	color: var(--ms-io-bull);
}

.ms-io__scenario-sub {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.7rem;
	font-weight: 500;
	color: var(--ms-io-faint);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

/* $10k outcome table */
.ms-io__invest-10k {
	margin-top: 0.85rem;
}

.ms-io__invest-10k--prominent .ms-io__outcome-table-wrap {
	border-color: rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.02);
}

.ms-io__outcome-table--prominent {
	font-size: 1rem;
}

.ms-io__outcome-table--prominent th,
.ms-io__outcome-table--prominent td {
	padding: 0.72rem 0.9rem;
}

.ms-io__outcome-table--prominent thead th {
	font-size: 0.78rem;
}

.ms-io__outcome-table--prominent tbody td {
	font-size: 1.02rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.ms-io__outcome-table--prominent tbody th[scope="row"] {
	font-size: 0.95rem;
}

.ms-io__h--sm {
	font-size: 1rem;
	margin: 0 0 0.55rem;
}

.ms-io__outcome-table-wrap {
	overflow-x: auto;
	border-radius: var(--ms-io-radius-sm);
	border: 1px solid var(--ms-io-border);
}

.ms-io__outcome-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

.ms-io__outcome-table th,
.ms-io__outcome-table td {
	padding: 0.5rem 0.7rem;
	text-align: left;
	border-bottom: 1px solid var(--ms-io-border);
}

.ms-io__outcome-table thead th {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ms-io-muted);
	background: var(--ms-io-elevated);
}

.ms-io__outcome-table tbody th[scope="row"] {
	font-weight: 600;
	color: var(--ms-io-text);
}

.ms-io__outcome-row--bear td:last-child {
	color: var(--ms-io-bear);
}

.ms-io__outcome-row--base td:last-child {
	color: var(--ms-io-base);
}

.ms-io__outcome-row--bull td:last-child {
	color: var(--ms-io-bull);
}

.ms-io__invest-10k .ms-io__fineprint {
	margin-top: 0.65rem;
}

/* Metric cards */
.ms-io__metrics {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
	margin: 0;
}

@media (max-width: 640px) {
	.ms-io__metrics {
		grid-template-columns: 1fr;
	}
}

.ms-io__metric {
	margin: 0;
	padding: 1rem 1.1rem;
	border-radius: var(--ms-io-radius-sm);
	background: var(--ms-io-surface);
	border: 1px solid var(--ms-io-border);
}

.ms-io__metric dt {
	margin: 0 0 0.35rem;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ms-io-muted);
}

.ms-io__metric dd {
	margin: 0;
	font-family: inherit;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: normal;
	color: var(--ms-io-text);
}

/* Confidence */
.ms-io__confidence {
	padding: 1.1rem 1.15rem;
	border-radius: var(--ms-io-radius-sm);
	background: var(--ms-io-surface);
	border: 1px solid var(--ms-io-border);
}

.ms-io__confidence-score {
	display: flex;
	align-items: baseline;
	gap: 0.15rem;
	margin-bottom: 0.65rem;
}

.ms-io__confidence-num {
	font-family: inherit;
	font-size: 1.85rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: normal;
	color: var(--ms-io-accent);
}

.ms-io__confidence-max {
	font-size: 0.85rem;
	color: var(--ms-io-muted);
	font-weight: 500;
}

.ms-io__confidence-track {
	height: 8px;
	border-radius: 999px;
	background: rgba(148, 163, 184, 0.12);
	overflow: hidden;
	margin-bottom: 0.85rem;
}

.ms-io__confidence-fill {
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, #a16207, var(--ms-io-accent), #fde68a);
	box-shadow: 0 0 20px rgba(232, 184, 74, 0.35);
	transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.ms-io__rationale {
	margin: 0;
	font-size: 0.88rem;
	color: var(--ms-io-muted);
	line-height: 1.55;
	max-width: none;
}

.ms-io__prose {
	margin: 0;
	font-size: 0.92rem;
	color: var(--ms-io-muted);
	line-height: 1.55;
	max-width: none;
}

.ms-io__prose--muted {
	margin-top: 0.65rem;
	color: var(--ms-io-faint, #9a9a9a);
	font-size: 0.88rem;
}

.ms-io__ai-teaser--after-drivers {
	margin-top: 1rem;
	margin-bottom: 0;
}

.ms-io__ai-teaser--after-drivers .ms-io__ai-teaser-body {
	flex: 1;
	min-width: 0;
}

.ms-io__ai-teaser-action {
	margin: 0.65rem 0 0;
}

.ms-io__ai-teaser-link {
	font-size: 0.88rem;
	font-weight: 600;
	color: #c4b5fd;
	text-decoration: none;
	border-bottom: 1px solid rgba(196, 181, 253, 0.35);
}

.ms-io__ai-teaser-link:hover {
	color: #e9d5ff;
	border-bottom-color: #e9d5ff;
}

/* Lists */
.ms-io__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ms-io__list li {
	position: relative;
	padding-left: 1.35rem;
	margin-bottom: 0.65rem;
	font-size: 0.93rem;
	color: #e5e5e5;
	line-height: 1.55;
}

.ms-io__prose {
	line-height: 1.55;
	max-width: 68ch;
}

.ms-io__list li:last-child {
	margin-bottom: 0;
}

.ms-io__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ms-io-accent);
	opacity: 0.75;
}

.ms-io__list--risk li::before {
	background: #f87171;
	opacity: 0.85;
}

.ms-io__list--success li::before {
	background: var(--ms-io-bull, #4ade80);
	opacity: 0.9;
}

/* AI teaser */
.ms-io__ai-teaser {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin-top: 1rem;
	padding: 0.95rem 1rem;
	border-radius: var(--ms-io-radius-sm);
	border: 1px solid rgba(167, 139, 250, 0.25);
	background: linear-gradient(135deg, rgba(109, 40, 217, 0.12) 0%, rgba(30, 27, 75, 0.35) 100%);
}

.ms-io__ai-teaser-icon {
	flex-shrink: 0;
	width: 2.25rem;
	height: 2.25rem;
	display: grid;
	place-items: center;
	font-size: 1rem;
	color: #c4b5fd;
	border-radius: 8px;
	background: rgba(139, 92, 246, 0.15);
	border: 1px solid rgba(139, 92, 246, 0.25);
}

.ms-io__ai-teaser-title {
	font-family: var(--ms-io-font-ui);
	font-size: 0.95rem;
	font-weight: 700;
	margin: 0 0 0.35rem;
	color: #e9d5ff;
	letter-spacing: 0;
}

.ms-io__ai-teaser-text {
	margin: 0;
	font-size: 0.85rem;
	color: #c4b5fd;
	line-height: 1.5;
	opacity: 0.95;
}

/* Risk block */
.ms-io__section--risk .ms-io__h::after {
	background: linear-gradient(90deg, #f87171, transparent);
}

.ms-io__risk-summary {
	margin: 0 0 0.85rem;
	font-size: 0.95rem;
	color: #fecaca;
	line-height: 1.55;
	max-width: none;
}

.ms-io__section--risk .ms-io__prose {
	color: #e5e5e5;
}

/* CTA */
.ms-io__cta {
	padding-top: 1.25rem;
	margin-top: 1.5rem;
	border-top: 1px solid var(--ms-io-border, rgba(148, 163, 184, 0.15));
}

.ms-io__cta-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
	margin-bottom: 0.25rem;
}

.ms-io__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.65rem 1.15rem;
	font-family: var(--ms-io-font-ui);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 10px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.ms-io__btn:focus-visible {
	outline: 2px solid var(--ms-io-accent);
	outline-offset: 3px;
}

.ms-io__btn--secondary {
	background: rgba(148, 163, 184, 0.08);
	border-color: var(--ms-io-border-strong);
	color: var(--ms-io-text);
}

.ms-io__btn--secondary:hover {
	background: rgba(148, 163, 184, 0.14);
	border-color: rgba(148, 163, 184, 0.4);
	transform: translateY(-1px);
}

.ms-io__btn--primary {
	background: linear-gradient(145deg, #ca8a04 0%, var(--ms-io-accent) 45%, #fde68a 160%);
	border-color: rgba(253, 230, 138, 0.35);
	color: #1a1406;
	box-shadow: 0 4px 24px rgba(232, 184, 74, 0.25);
}

.ms-io__btn--primary:hover:not(:disabled) {
	filter: brightness(1.06);
	transform: translateY(-1px);
	box-shadow: 0 8px 32px rgba(232, 184, 74, 0.3);
}

.ms-io__btn--primary:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

.ms-io__btn-credit {
	display: inline-block;
	margin-left: 0.15rem;
	padding: 0.15rem 0.45rem;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-radius: 6px;
	background: rgba(0, 0, 0, 0.2);
	color: inherit;
}

.ms-io__hint {
	margin: 0.75rem 0 0;
	font-size: 0.8rem;
	color: var(--ms-io-muted);
	max-width: 60ch;
	line-height: 1.45;
}

/* Theme bleed reset for links/buttons inside outlook */
.ms-io-outlook a.ms-io__btn {
	color: inherit;
}

.ms-io--error-shell {
	margin: 2rem auto;
	padding: 0 1rem;
	max-width: 100%;
}

.stockDetailsWrap.ms-io-outlook-card.ms-io--error-shell {
	padding: 1.5rem;
}

.ms-io__error-msg {
	margin: 0;
	font-size: 0.95rem;
	color: #fecaca;
	line-height: 1.5;
}

/* Standalone outlook template (ms-io-page-wrap) — banner variants */
.ms-io-page-wrap .ms-io__banner--info,
.ms-io-page-wrap .ms-io__banner--warning {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	font-size: 0.9rem;
	line-height: 1.45;
	margin: 0.5rem 0 0;
}

.ms-io-page-wrap .ms-io__banner--info {
	border: 1px solid rgba(59, 130, 246, 0.35);
	background: rgba(239, 246, 255, 0.9);
	color: #1e3a8a;
}

.ms-io-page-wrap .ms-io__banner--warning {
	border: 1px solid rgba(248, 113, 113, 0.55);
	background: rgba(254, 242, 242, 0.95);
	color: #991b1b;
}

.ms-io-page-wrap .ms-io__banner--warning .ms-io__banner-cta {
	color: #b45309;
	font-weight: 700;
	text-decoration: underline;
}

.ms-io-page-wrap .ms-io__anchors-muted {
	color: #64748b;
	font-weight: 500;
}

.ms-io__ai-credits-block {
	margin-top: 1.75rem;
	padding-top: 0.25rem;
}

.ms-io__cta-grid .ms-io__btn--primary {
	margin-bottom: 0.15rem;
}

.ms-io__ai-credit-line {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.85rem;
	font-size: 0.875rem;
	line-height: 1.45;
	border-radius: 8px;
	background: rgba(42, 50, 57, 0.55);
	border: 1px solid rgba(148, 163, 184, 0.12);
}

.ms-io__ai-status-wrap {
	margin: 0 0 0.5rem;
	min-height: 1.35rem;
	line-height: 1.45;
}

.ms-io__ai-credits-cta {
	margin: 0.75rem 0 0;
	padding-top: 0.25rem;
}

/* Modal mounts on <body> — carry stockDetails / outlook tokens (not inherited from .ms-io-outlook). */
.ms-io__ai-modal {
	--ms-io-surface: rgba(255, 255, 255, 0.04);
	--ms-io-elevated: rgba(255, 255, 255, 0.06);
	--ms-io-border: rgba(192, 192, 192, 0.22);
	--ms-io-border-strong: rgba(192, 192, 192, 0.35);
	--ms-io-text: #ffffff;
	--ms-io-muted: #cdcdcd;
	--ms-io-faint: #9a9a9a;
	--ms-io-accent: #d4a012;
	--ms-io-radius: 12px;
	--ms-io-radius-sm: 8px;

	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	font-family: inherit;
	color: var(--ms-io-text);
	-webkit-font-smoothing: antialiased;
}

.ms-io__ai-modal[hidden] {
	display: none !important;
}

.ms-io__ai-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 12, 14, 0.78);
	backdrop-filter: blur(3px);
}

.ms-io__ai-modal__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 34rem);
	max-height: min(85vh, 30rem);
	overflow: auto;
	padding: 1.35rem 1.5rem 1.35rem;
	border-radius: var(--ms-io-radius);
	border: 1px solid var(--ms-io-border-strong);
	background: #1a1f24;
	box-shadow:
		0 0 0 1px rgba(0, 0, 0, 0.35),
		0 20px 50px rgba(0, 0, 0, 0.55);
}

.ms-io__ai-modal__title {
	margin: 0 0 0.85rem;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.25;
	color: #ffffff;
}

.ms-io__ai-modal__body {
	margin: 0 0 1rem;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--ms-io-muted);
}

.ms-io__ai-modal__meta {
	margin: 0 0 1.25rem;
	padding: 0.65rem 0.75rem;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--ms-io-text);
	border-radius: var(--ms-io-radius-sm);
	background: var(--ms-io-surface);
	border: 1px solid var(--ms-io-border);
}

.ms-io__ai-modal__meta[hidden] {
	display: none !important;
}

.ms-io__ai-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.ms-io__ai-modal__actions .ms-io__btn {
	flex: 1 1 auto;
	min-width: 9rem;
	font-family: inherit;
}

.ms-io__ai-modal__actions .ms-io__btn--primary {
	background: linear-gradient(145deg, #ca8a04 0%, var(--ms-io-accent) 45%, #fde68a 160%);
	border: 1px solid rgba(253, 230, 138, 0.35);
	color: #1a1406 !important;
	box-shadow: 0 4px 24px rgba(232, 184, 74, 0.25);
}

.ms-io__ai-modal__actions .ms-io__btn--primary:hover {
	filter: brightness(1.06);
	color: #1a1406 !important;
}

.ms-io__ai-modal__actions .ms-io__btn--secondary {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid var(--ms-io-border-strong);
	color: #ffffff !important;
}

.ms-io__ai-modal__actions .ms-io__btn--secondary:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(192, 192, 192, 0.5);
	color: #ffffff !important;
}

body.ms-io-ai-modal-open {
	overflow: hidden;
}

.ms-io__ai-credits-cta[hidden] {
	display: none !important;
}

.ms-io__ai-buy-wrap a {
	color: #f8e7c1;
	text-decoration: underline;
}

.ms-io__ai-buy-wrap a:hover {
	color: #ffffff;
}
