/* EquityTimer Market Pulse - every rule is scoped under .etm (layout and colours shared with Option Pulse) */

.etm {
	--etm-bg: #f4f6f9;
	--etm-card: #ffffff;
	--etm-line: #e4e8ee;
	--etm-ink: #111827;
	--etm-sub: #5b6474;
	--etm-mute: #8a93a3;
	--etm-blue: #2563eb;
	--etm-blue-soft: #eaf1ff;
	--etm-green: #2fa84f;
	--etm-green-soft: #e7f6ec;
	--etm-red: #ef5a52;
	--etm-red-soft: #fdecea;
	--etm-orange: #e8741c;
	--etm-radius: 10px;
	box-sizing: border-box;
	max-width: 1320px;
	margin: 0 auto;
	padding: 16px 12px 32px;
	background: var(--etm-bg);
	color: var(--etm-ink);
	font-family: Inter, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.55;
	border-radius: var(--etm-radius);
}

.etm *,
.etm *::before,
.etm *::after {
	box-sizing: border-box;
}

.etm .etm-h1 {
	margin: 6px 0 14px;
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--etm-ink);
}

.etm .etm-h2 {
	margin: 0 0 12px;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--etm-ink);
}

.etm .etm-h3 {
	margin: 18px 0 6px;
	font-size: 1.02rem;
	font-weight: 650;
	color: var(--etm-ink);
}

.etm .etm-card {
	background: var(--etm-card);
	border: 1px solid var(--etm-line);
	border-radius: var(--etm-radius);
	box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
}

.etm .etm-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.etm .etm-card-title {
	font-weight: 650;
	font-size: 0.98rem;
}

/* ---------------------------------------------------------------- tabs */

.etm .etm-tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin: 0 auto 14px;
	padding: 5px;
	width: fit-content;
	max-width: 100%;
	background: var(--etm-card);
	border: 1px solid var(--etm-line);
	border-radius: 10px;
}

.etm .etm-tab {
	padding: 7px 14px;
	border-radius: 7px;
	color: var(--etm-ink);
	font-size: 0.9rem;
	font-weight: 550;
	text-decoration: none;
	white-space: nowrap;
}

.etm .etm-tab:hover {
	background: var(--etm-bg);
}

.etm .etm-tab.is-active {
	background: var(--etm-blue-soft);
	color: var(--etm-blue);
}

.etm .etm-tab-all {
	color: var(--etm-sub);
}

/* ---------------------------------------------------------------- layout */

.etm .etm-layout {
	display: grid;
	grid-template-columns: 290px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.etm .etm-side {
	display: grid;
	gap: 14px;
	position: sticky;
	top: 12px;
}

.etm .etm-main {
	display: grid;
	gap: 14px;
	min-width: 0;
}

.etm .etm-settings,
.etm .etm-facts {
	padding: 16px;
}

.etm .etm-field[hidden] {
	display: none;
}

.etm .etm-field {
	display: block;
	margin-bottom: 14px;
}

.etm .etm-field > span {
	display: block;
	margin-bottom: 6px;
	font-size: 0.86rem;
	font-weight: 600;
	color: var(--etm-ink);
}

.etm .etm-select {
	width: 100%;
	height: 40px;
	padding: 0 10px;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	font-size: 0.92rem;
}

.etm .etm-select:focus {
	outline: 2px solid var(--etm-blue);
	outline-offset: -1px;
}

.etm .etm-seg {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
	overflow: hidden;
	width: fit-content;
	max-width: 100%;
}

.etm .etm-seg button {
	appearance: none;
	flex: 1 1 auto;
	margin: 0;
	padding: 7px 13px;
	border: 0;
	border-left: 1px solid var(--etm-line);
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	font-size: 0.86rem;
	font-weight: 550;
	cursor: pointer;
}

.etm .etm-seg button:first-child {
	border-left: 0;
}

.etm .etm-seg button.is-on {
	background: var(--etm-blue-soft);
	color: var(--etm-blue);
	box-shadow: inset 0 0 0 1px var(--etm-blue);
}

.etm .etm-settings .etm-seg {
	width: 100%;
}

.etm .etm-dl {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 7px 10px;
	margin: 0;
	font-size: 0.9rem;
}

.etm .etm-dl dt {
	color: var(--etm-sub);
}

.etm .etm-dl dd {
	margin: 0;
	font-weight: 600;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------- panels */

.etm .etm-panel {
	padding: 14px 14px 10px;
}

.etm .etm-panel-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.etm .etm-panel-title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 650;
}

.etm .etm-stamp {
	color: var(--etm-sub);
	font-size: 0.84rem;
}

.etm .etm-chart {
	position: relative;
	width: 100%;
}

.etm .etm-chart-bars {
	height: 430px;
}

.etm .etm-chart-line {
	height: 260px;
}

.etm .etm-chart svg {
	display: block;
	width: 100%;
	height: 100%;
	font-family: inherit;
}

.etm .etm-loading,
.etm .etm-empty {
	padding: 40px 10px;
	color: var(--etm-sub);
	text-align: center;
}

.etm .etm-legend {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 16px;
	padding: 8px 0 2px;
	color: var(--etm-sub);
	font-size: 0.8rem;
}

.etm .etm-legend i {
	display: inline-block;
	width: 11px;
	height: 11px;
	margin-right: 5px;
	vertical-align: -1px;
	border-radius: 2px;
}

.etm .etm-tip {
	position: absolute;
	z-index: 5;
	min-width: 170px;
	padding: 8px 10px;
	background: #111827;
	color: #fff;
	border-radius: 7px;
	font-size: 0.8rem;
	line-height: 1.45;
	pointer-events: none;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
	font-variant-numeric: tabular-nums;
}

.etm .etm-tip b {
	display: block;
	margin-bottom: 3px;
}

.etm .etm-trio {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.etm .etm-duo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
	gap: 14px;
}

.etm .etm-mini {
	padding: 14px;
}

.etm .etm-mini-title {
	margin: 0 0 8px;
	font-size: 0.98rem;
	font-weight: 650;
}

.etm .etm-mini-sub {
	display: block;
	margin-top: 2px;
	color: var(--etm-mute);
	font-size: 0.76rem;
	font-weight: 500;
}

.etm .etm-note {
	padding: 14px 16px;
	background: var(--etm-blue-soft);
	border-color: #cfe0ff;
	font-size: 0.93rem;
}

.etm .etm-note h3 {
	margin: 0 0 6px;
	font-size: 0.98rem;
}

.etm .etm-note p {
	margin: 0 0 6px;
}

.etm .etm-kv {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 9px 10px;
	margin: 6px 0 0;
	font-size: 0.92rem;
}

.etm .etm-kv dt {
	color: var(--etm-sub);
}

.etm .etm-kv dd {
	margin: 0;
	font-weight: 650;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.etm .is-up {
	color: var(--etm-green);
}

.etm .is-down {
	color: var(--etm-red);
}

/* ---------------------------------------------------------------- wide (table) tools */

.etm .etm-layout.is-wide {
	grid-template-columns: minmax(0, 1fr);
}

.etm .etm-layout.is-wide .etm-side {
	position: static;
	display: contents;
}

.etm .etm-layout.is-wide .etm-settings {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0 14px;
	padding: 12px 16px 0;
}

.etm .etm-layout.is-wide .etm-settings .etm-card-head {
	display: none;
}

.etm .etm-layout.is-wide .etm-settings .etm-field {
	min-width: 170px;
	margin-bottom: 12px;
}

.etm .etm-layout.is-wide .etm-settings .etm-seg {
	width: auto;
}

.etm .etm-layout.is-wide .etm-facts {
	order: 3;
}

.etm .etm-layout.is-wide .etm-facts .etm-dl {
	grid-template-columns: repeat(auto-fill, minmax(150px, auto) minmax(90px, 1fr));
}

.etm .etm-duo-even {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.etm .etm-chart-tall {
	height: 380px;
}

.etm .etm-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	font-size: 0.9rem;
	color: var(--etm-sub);
}

.etm .etm-strip b {
	color: var(--etm-ink);
}

/* ---------------------------------------------------------------- tables */

.etm .etm-tablewrap {
	width: 100%;
	overflow-x: auto;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
}

.etm .etm-table {
	width: 100%;
	min-width: 860px;
	margin: 0;
	border-collapse: collapse;
	font-size: 0.84rem;
	font-variant-numeric: tabular-nums;
	background: #fff;
}

.etm .etm-table th,
.etm .etm-table td {
	padding: 7px 8px;
	border: 1px solid #edf0f4;
	text-align: center;
	white-space: nowrap;
}

.etm .etm-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #f7f8fa;
	color: var(--etm-ink);
	font-weight: 600;
	font-size: 0.8rem;
}

.etm .etm-table th.g-put { background: #fdecea; color: #b42318; }
.etm .etm-table th.g-call { background: #e7f6ec; color: #13703a; }
.etm .etm-table th.g-diff { background: #f1ecfd; color: #5b21b6; }
.etm .etm-table th.g-pcr { background: #fff7e0; color: #8a5a00; }
.etm .etm-table th.g-fut { background: #eaf1ff; color: #1d4ed8; }

.etm .etm-table tbody tr:hover td {
	filter: brightness(0.96);
}

.etm .etm-td-date {
	font-weight: 600;
	text-align: left;
}

.etm .etm-strong {
	font-weight: 700;
}

.etm .etm-barcol {
	width: 180px;
	min-width: 140px;
	position: relative;
}

.etm .etm-dbar {
	display: block;
	height: 8px;
	border-radius: 5px;
}

.etm .etm-dbar.is-pos {
	margin-left: 50%;
	background: var(--etm-green);
}

.etm .etm-dbar.is-neg {
	margin-left: auto;
	margin-right: 50%;
	background: var(--etm-red);
}

/* option chain */

.etm .etm-chain td.c.is-itm,
.etm .etm-chain td.p.is-itm {
	background: #fffbea;
}

.etm .etm-chain td.etm-oi {
	position: relative;
	min-width: 96px;
	text-align: right;
}

.etm .etm-chain td.etm-oi b {
	position: relative;
	font-weight: 600;
}

.etm .etm-oibar {
	position: absolute;
	top: 6px;
	bottom: 6px;
	border-radius: 3px;
	opacity: 0.28;
}

.etm .etm-oibar.is-call {
	right: 4px;
	background: var(--etm-red);
}

.etm .etm-oibar.is-put {
	left: 4px;
	background: var(--etm-green);
}

.etm .etm-chain td.p.etm-oi {
	text-align: left;
}

.etm .etm-chain td small {
	font-size: 0.74rem;
}

.etm .etm-strike {
	background: #f7f8fa;
	font-weight: 700;
	min-width: 80px;
}

.etm .etm-strike em {
	display: block;
	color: var(--etm-orange);
	font-size: 0.66rem;
	font-style: normal;
	font-weight: 600;
}

.etm .etm-iv {
	background: #f7f8fa;
	color: var(--etm-sub);
}

.etm .etm-chain tr.is-atm td {
	border-top: 2px solid var(--etm-blue);
	border-bottom: 2px solid var(--etm-blue);
}

.etm .etm-chain .is-ctop1 { background: rgba(239,90,82,0.6) !important; color: #fff; font-weight: 700; }
.etm .etm-chain .is-ctop2 { background: rgba(239,90,82,0.34) !important; }
.etm .etm-chain .is-ctop3 { background: rgba(239,90,82,0.17) !important; }
.etm .etm-chain .is-ptop1 { background: rgba(47,168,79,0.55) !important; color: #fff; font-weight: 700; }
.etm .etm-chain .is-ptop2 { background: rgba(47,168,79,0.32) !important; }
.etm .etm-chain .is-ptop3 { background: rgba(47,168,79,0.16) !important; }

.etm .etm-spotrow td {
	padding: 0;
	height: 0;
	border-top: 2px dashed var(--etm-ink);
	position: relative;
}

.etm .etm-spotrow span {
	position: absolute;
	left: 50%;
	top: -10px;
	transform: translateX(-50%);
	padding: 1px 8px;
	border-radius: 4px;
	background: var(--etm-ink);
	color: #fff;
	font-size: 0.72rem;
}

.etm .etm-totals td {
	background: #fafbfc;
	font-weight: 600;
	font-size: 0.8rem;
}

.etm .etm-bu {
	display: inline-block;
	min-width: 32px;
	padding: 2px 6px;
	border-radius: 5px;
	font-size: 0.74rem;
	font-weight: 700;
	color: var(--etm-mute);
}

.etm .etm-bu.is-lb { background: #e3f5e9; color: #13703a; }
.etm .etm-bu.is-sc { background: #eaf1ff; color: #1d4ed8; }
.etm .etm-bu.is-sb { background: #fdecea; color: #b42318; }
.etm .etm-bu.is-lu { background: #fff4e5; color: #b45309; }

/* ---------------------------------------------------------------- explainer */

.etm .etm-explain {
	display: grid;
	gap: 14px;
	margin-top: 22px;
}

.etm .etm-article {
	padding: 22px 24px;
}

.etm .etm-article p {
	margin: 0 0 8px;
	color: #3f4756;
}

.etm .etm-faq {
	margin: 0 0 10px;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
	background: #fff;
}

.etm .etm-faq summary {
	padding: 13px 16px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.etm .etm-faq summary::-webkit-details-marker {
	display: none;
}

.etm .etm-faq summary::before {
	content: "\25B8";
	display: inline-block;
	width: 18px;
	color: var(--etm-sub);
	transition: transform 0.15s;
}

.etm .etm-faq[open] summary::before {
	transform: rotate(90deg);
}

.etm .etm-faq p {
	margin: 0;
	padding: 0 16px 14px 34px;
}

.etm .etm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.etm .etm-chip {
	padding: 8px 14px;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
	color: var(--etm-ink);
	font-size: 0.9rem;
	text-decoration: none;
	background: #fff;
}

.etm .etm-chip:hover {
	border-color: var(--etm-blue);
	color: var(--etm-blue);
}

.etm .etm-crumbs {
	font-size: 0.88rem;
	color: var(--etm-sub);
}

.etm .etm-crumbs a {
	color: var(--etm-blue);
	text-decoration: none;
}

.etm .etm-disclaimer {
	margin: 4px 0 0;
	color: var(--etm-mute);
	font-size: 0.8rem;
}

/* ---------------------------------------------------------------- hub */

.etm .etm-hub-head {
	margin-bottom: 18px;
}

.etm .etm-lead {
	margin: 0;
	color: var(--etm-sub);
}

.etm .etm-hub-group {
	margin-bottom: 22px;
}

.etm .etm-hub-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 12px;
}

.etm .etm-hub-card {
	display: block;
	padding: 18px;
	color: var(--etm-ink);
	text-decoration: none;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.etm a.etm-hub-card:hover {
	border-color: var(--etm-blue);
	box-shadow: 0 4px 14px rgba(37, 99, 235, 0.1);
}

.etm .etm-hub-card.is-soon {
	opacity: 0.6;
}

.etm .etm-hub-name {
	display: block;
	margin-bottom: 4px;
	font-weight: 650;
	font-size: 1.02rem;
}

.etm .etm-hub-desc {
	display: block;
	color: var(--etm-sub);
	font-size: 0.88rem;
}

.etm .etm-badge {
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 20px;
	background: var(--etm-bg);
	color: var(--etm-sub);
	font-size: 0.72rem;
	font-style: normal;
	font-weight: 600;
}

/* ---------------------------------------------------------------- responsive */

@media (max-width: 1000px) {
	.etm .etm-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	/* settings, then chart, then key numbers */
	.etm .etm-side {
		display: contents;
	}

	.etm .etm-settings {
		order: 1;
	}

	.etm .etm-main {
		order: 2;
	}

	.etm .etm-facts {
		order: 3;
	}

	.etm .etm-settings {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0 12px;
		align-items: end;
	}

	.etm .etm-settings .etm-card-head {
		grid-column: 1 / -1;
	}

	.etm .etm-trio {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.etm .etm-duo,
	.etm .etm-duo-even {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.etm {
		padding: 10px 8px 24px;
		font-size: 14.5px;
	}

	.etm .etm-h1 {
		font-size: 1.28rem;
	}

	.etm .etm-settings {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.etm .etm-settings .etm-field:first-of-type,
	.etm .etm-settings .etm-field:last-child {
		grid-column: 1 / -1;
	}

	.etm .etm-tabs {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		width: 100%;
	}

	.etm .etm-trio {
		grid-template-columns: minmax(0, 1fr);
	}

	.etm .etm-chart-bars {
		height: 360px;
	}

	.etm .etm-article {
		padding: 16px;
	}
}

/* ---------------------------------------------------------------- chain settings */

.etm .etm-panel-tools {
	display: flex;
	align-items: center;
	gap: 10px;
}

.etm .etm-btn {
	appearance: none;
	padding: 7px 12px;
	border: 1px solid var(--etm-line);
	border-radius: 8px;
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	font-size: 0.86rem;
	font-weight: 600;
	cursor: pointer;
}

.etm .etm-btn:hover {
	border-color: var(--etm-blue);
	color: var(--etm-blue);
}

.etm .etm-cs {
	margin: 0 0 12px;
	padding: 14px 16px;
	box-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
}

.etm .etm-cs[hidden] {
	display: none;
}

.etm .etm-cs-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.etm .etm-cs-head b {
	flex: 1;
	font-size: 1rem;
}

.etm .etm-linkbtn,
.etm .etm-x {
	appearance: none;
	border: 1px solid var(--etm-line);
	border-radius: 6px;
	background: #fff;
	font: inherit;
	cursor: pointer;
}

.etm .etm-linkbtn {
	padding: 4px 10px;
	color: var(--etm-red);
	border-color: #f5c2bf;
	font-size: 0.84rem;
}

.etm .etm-x {
	width: 30px;
	height: 30px;
	font-size: 1.2rem;
	line-height: 1;
	color: var(--etm-sub);
}

.etm .etm-cs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 6px 18px;
}

.etm .etm-cs-sec h4 {
	margin: 10px 0 6px;
	color: var(--etm-sub);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.etm .etm-cs-display {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
	align-items: center;
}

.etm .etm-cs-display h4 {
	width: 100%;
}

.etm .etm-toggle {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 4px 0;
	font-size: 0.88rem;
	cursor: pointer;
	user-select: none;
}

.etm .etm-toggle input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.etm .etm-toggle span {
	position: relative;
	flex: 0 0 34px;
	width: 34px;
	height: 19px;
	border-radius: 20px;
	background: #d4d9e2;
	transition: background 0.15s;
}

.etm .etm-toggle span::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 2px;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	transition: transform 0.15s;
}

.etm .etm-toggle input:checked + span {
	background: var(--etm-blue);
}

.etm .etm-toggle input:checked + span::after {
	transform: translateX(15px);
}

.etm .etm-toggle input:focus-visible + span {
	outline: 2px solid var(--etm-blue);
	outline-offset: 2px;
}

.etm .etm-chain td.etm-mid {
	background: #f7f8fb;
	font-variant-numeric: tabular-nums;
}

.etm .etm-unit {
	padding: 2px 8px;
	border-radius: 20px;
	background: var(--etm-blue-soft);
	color: var(--etm-blue);
	font-size: 0.78rem;
}

/* grid children must be allowed to shrink, or wide tables push the page sideways */
.etm .etm-main > *,
.etm .etm-layout > * {
	min-width: 0;
	max-width: 100%;
}

.etm .etm-tablewrap {
	max-width: 100%;
}

@media (max-width: 640px) {
	.etm .etm-panel-head {
		flex-direction: column;
		align-items: flex-start;
	}

	.etm .etm-cs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4px 12px;
	}

	.etm .etm-toggle {
		font-size: 0.84rem;
	}
}

/* theme button styles (padding, line-height, uppercase) must not leak in */
.etm button {
	min-height: 0;
	margin: 0;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	text-shadow: none;
}

.etm .etm-x {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	padding: 0;
	font-size: 20px;
	line-height: 1;
	color: var(--etm-sub);
	background: #fff;
}

.etm .etm-x:hover {
	border-color: var(--etm-red);
	color: var(--etm-red);
}

.etm .etm-linkbtn {
	display: inline-flex;
	align-items: center;
	height: 32px;
	line-height: 1;
}

.etm .etm-cs-display {
	padding-bottom: 12px;
	margin-bottom: 4px;
	border-bottom: 1px solid var(--etm-line);
}

/* ---------------------------------------------------------------- futures tools */

.etm .etm-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px 22px;
	margin-bottom: 14px;
	padding: 14px 16px 2px;
}

.etm .etm-bar .etm-field {
	margin-bottom: 12px;
}

.etm .etm-bar .etm-select {
	min-width: 190px;
}

.etm .etm-bar .etm-stamp {
	margin: 0 0 22px auto;
}

.etm .etm-main-full {
	display: grid;
	gap: 14px;
}

.etm .etm-chart-xl {
	height: 620px;
}

.etm .etm-heat {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
	gap: 6px;
}

.etm .etm-tile {
	display: flex;
	flex-direction: column;
	gap: 1px;
	padding: 9px 10px;
	border-radius: 7px;
	color: var(--etm-ink);
	text-decoration: none;
	line-height: 1.25;
	transition: transform 0.12s, box-shadow 0.12s;
}

.etm .etm-tile:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(17, 24, 39, 0.18);
}

.etm .etm-tile b {
	font-size: 0.84rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.etm .etm-tile span {
	font-size: 0.95rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.etm .etm-tile small {
	font-size: 0.72rem;
	opacity: 0.85;
}

.etm .etm-tile.is-dark {
	color: #fff;
}

.etm .etm-heat-legend {
	padding: 0;
}

.etm .etm-sort {
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}

.etm .etm-sort:hover {
	color: var(--etm-blue);
}

.etm .etm-sort.is-desc::after {
	content: " \25BE";
}

.etm .etm-sort.is-asc::after {
	content: " \25B4";
}

.etm .etm-scroll {
	max-height: 640px;
	overflow: auto;
}

.etm .etm-scroll thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}

.etm .etm-big {
	margin: 2px 0 10px;
	font-size: 1.02rem;
	font-weight: 650;
}

.etm .etm-bu.is-lu {
	background: #fff4e0;
	color: #9a5b00;
}

@media (max-width: 640px) {
	.etm .etm-chart-xl {
		height: 520px;
	}

	.etm .etm-heat {
		grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
	}

	.etm .etm-bar .etm-stamp {
		margin: 0 0 12px;
	}
}

/* ---------------------------------------------------------------- volatility (v0.5) */

.etm .etm-search {
	min-width: 150px;
}

.etm .etm-ivtable td {
	white-space: nowrap;
}

.etm .etm-ivtable tr.is-sel td {
	background: #eef4ff;
}

.etm .etm-symbtn {
	padding: 0;
	border: 0;
	background: none;
	color: var(--etm-blue);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.etm .etm-symbtn:hover {
	text-decoration: underline;
}

.etm .etm-rank {
	position: relative;
	min-width: 84px;
}

.etm .etm-rank span {
	position: absolute;
	top: 6px;
	bottom: 6px;
	left: 4px;
	max-width: calc(100% - 8px);
	border-radius: 3px;
}

.etm .etm-rank b {
	position: relative;
	font-weight: 500;
}

.etm .etm-lnks a {
	margin-right: 10px;
	font-size: 0.85rem;
	color: var(--etm-blue);
	text-decoration: none;
}

.etm .etm-lnks a:hover {
	text-decoration: underline;
}

.etm .etm-panel-head .etm-toggle {
	padding: 0;
}

/* ---------------------------------------------------------------- premium (v0.6) */

.etm .etm-sttable label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}

.etm .etm-sttable input[type="radio"] {
	margin: 0;
	accent-color: var(--etm-blue);
}

.etm .etm-sttable tr.is-sel td {
	background: #eef4ff;
}

.etm .etm-sttable tr.etm-st-roll td {
	color: var(--etm-blue);
	font-weight: 600;
	text-align: center;
}

/* ---------------------------------------------------------------- strategy builder (v0.7.1) */

.etm [hidden] {
	display: none !important;
}

.etm .etm-sb {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.etm .etm-sb-grid {
	display: grid;
	grid-template-columns: minmax(340px, 11fr) minmax(0, 13fr);
	gap: 16px;
	align-items: start;
}

.etm .etm-sb-left,
.etm .etm-sb-right {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

/* tables inside the builder size to their card, never to the 860px chain minimum */
.etm .etm-sb .etm-table {
	min-width: 0;
}

.etm .etm-sb .etm-table th,
.etm .etm-sb .etm-table td {
	padding: 6px 6px;
}

.etm .etm-sb-tw {
	overflow-x: auto;
}

.etm .etm-sb-ptable {
	max-height: 430px;
	overflow-y: auto;
}

/* summary bar */
.etm .etm-sb-kpis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 12px 18px;
}

.etm .etm-sb-kpis div {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.etm .etm-sb-kpis span {
	color: #6b7280;
	font-size: 0.78rem;
}

.etm .etm-sb-kpis b {
	font-size: 1.02rem;
}

.etm .etm-sb-kpis small {
	font-weight: 500;
	color: #6b7280;
}

.etm .etm-sb-kpis abbr {
	cursor: help;
	text-decoration: none;
	border: 1px solid #c9ced8;
	border-radius: 50%;
	padding: 0 4px;
	font-size: 0.68rem;
}

/* ready-made tiles */
.etm .etm-sb-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
	gap: 8px;
	margin: 12px 0 6px;
}

.etm .etm-sb-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 8px 4px 6px;
	border: 1px solid var(--etm-line);
	border-radius: 10px;
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	font-size: 0.76rem;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}

.etm .etm-sb-tile:hover,
.etm .etm-sb-tile.is-on {
	border-color: var(--etm-blue);
	box-shadow: 0 0 0 1px var(--etm-blue);
}

.etm .etm-sb-ico {
	width: 100%;
	max-width: 110px;
	height: 46px;
}

/* option chain: five compact columns, vertical scroll only */
.etm .etm-sb-chainwrap {
	max-height: 560px;
	overflow-y: auto;
	border: 1px solid #edf0f4;
	border-radius: 8px;
}

.etm .etm-sb-chain {
	font-size: 0.8rem;
}

.etm .etm-sb-chain th,
.etm .etm-sb-chain td {
	padding: 4px 4px;
	text-align: center;
	white-space: nowrap;
}

.etm .etm-sb-chain td.is-itm {
	background: #fffbea;
}

.etm .etm-sb-chain tr.is-atm td {
	border-top: 2px solid var(--etm-blue);
}

.etm .etm-sb-k b {
	display: block;
}

.etm .etm-sb-k small {
	display: block;
	color: #6b7280;
	font-size: 0.7rem;
}

.etm .etm-sb-bs {
	width: 64px;
}

.etm .etm-sb-bs button,
.etm .etm-sb-side {
	width: 24px;
	height: 22px;
	margin: 0 1px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 5px;
	font: inherit;
	font-size: 0.74rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.etm .etm-sb-bs .b,
.etm .etm-sb-side.b {
	background: #e3f4e8;
	color: #1e7b3a;
}

.etm .etm-sb-bs .s,
.etm .etm-sb-side.s {
	background: #fde6e4;
	color: #c2382f;
}

/* positions */
.etm .etm-sb-legs td {
	vertical-align: middle;
}

.etm .etm-sb-legs .etm-select,
.etm .etm-sb .etm-sb-num {
	width: auto;
	min-width: 0;
	height: 32px;
	padding: 0 6px;
	font-size: 0.84rem;
}

.etm .etm-sb-legs select.etm-select {
	max-width: 96px;
}

.etm .etm-sb-legs input[data-sb="lots"] {
	width: 54px;
}

.etm .etm-sb-legs input[data-sb="entry"] {
	width: 78px;
}

.etm .etm-sb-type,
.etm .etm-sb-btn,
.etm .etm-sb-link,
.etm .etm-sb-chip,
.etm .etm-sb-x,
.etm .etm-sb-step button {
	border: 1px solid var(--etm-line);
	border-radius: 6px;
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	font-size: 0.82rem;
	line-height: 1;
	cursor: pointer;
}

.etm .etm-sb-type {
	width: 38px;
	height: 30px;
	padding: 0;
	font-weight: 600;
}

.etm .etm-sb-btn {
	height: 32px;
	padding: 0 12px;
}

.etm .etm-sb-x {
	width: 26px;
	height: 26px;
	padding: 0;
	font-size: 1.05rem;
}

.etm .etm-sb-link {
	border: 0;
	background: none;
	color: var(--etm-blue);
	padding: 0;
}

.etm .etm-sb-chip {
	padding: 2px 6px;
	font-size: 0.7rem;
}

.etm .etm-sb-chip.is-on {
	border-color: var(--etm-blue);
	color: var(--etm-blue);
}

/* payoff card */
.etm .etm-sb-subhead {
	min-height: 0;
}

.etm .etm-seg-sm button {
	padding: 4px 12px;
	font-size: 0.82rem;
}

.etm .etm-sb-body {
	position: relative;
}

.etm .etm-sb-tgl {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
}

/* target controls */
.etm .etm-sb-tgt + .etm-sb-tgt {
	margin-top: 16px;
}

.etm .etm-sb-tgt-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin-bottom: 6px;
	font-size: 0.88rem;
}

.etm .etm-sb-step {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.etm .etm-sb-step button {
	width: 28px;
	height: 30px;
	padding: 0;
}

.etm .etm-sb-tgt .etm-sb-num {
	width: 116px;
}

.etm .etm-sb input[type="range"].etm-sb-range {
	display: block;
	width: 100%;
	height: 22px;
	margin: 4px 0 2px;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	accent-color: var(--etm-blue);
}

.etm .etm-sb-ends {
	display: flex;
	justify-content: space-between;
	color: #6b7280;
	font-size: 0.78rem;
}

/* bottom row */
.etm .etm-sb-quad {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
	align-items: start;
}

.etm .etm-sb-gap {
	margin-top: 16px;
}

.etm .etm-sb-iv .etm-sb-num,
.etm .etm-sb-quad .etm-sb-num {
	width: 58px;
	text-align: center;
}

.etm .etm-sb-quad .etm-sb-step button {
	width: 24px;
	height: 28px;
}

.etm .etm-sb-badge {
	display: inline-block;
	width: 18px;
	border-radius: 4px;
	font-size: 0.72rem;
	font-weight: 700;
	text-align: center;
}

.etm .etm-sb-badge.b {
	background: #e3f4e8;
	color: #1e7b3a;
}

.etm .etm-sb-badge.s {
	background: #fde6e4;
	color: #c2382f;
}

.etm .etm-sb-total td {
	font-weight: 700;
	border-top: 2px solid var(--etm-line);
}

@media (max-width: 1100px) {
	.etm .etm-sb-grid {
		grid-template-columns: 1fr;
	}
}

.etm .etm-sb-chain thead th {
	top: -1px;
	box-shadow: 0 1px 0 #edf0f4;
}

/* ---------------------------------------------------------------- strategy builder drawer (v0.8) */

.etm .etm-sb-primary {
	border-color: var(--etm-blue);
	background: var(--etm-blue);
	color: #fff;
	font-weight: 600;
}

.etm .etm-sb-emptybox {
	padding: 22px 10px;
	text-align: center;
}

.etm .etm-sb-emptybox p {
	margin: 0 0 12px;
	color: #6b7280;
}

.etm .etm-sb-emptybox .etm-sb-btn {
	height: 40px;
	padding: 0 22px;
}

.etm .etm-sb-paybar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 22px;
	margin-top: 10px;
	font-size: 0.88rem;
}

.etm .etm-sb-paybar .etm-sb-link {
	margin-left: auto;
}

.etm .etm-sb-fut {
	display: inline-block;
	padding: 2px 6px;
	border-radius: 5px;
	background: #eef2f8;
	font-size: 0.74rem;
	font-weight: 600;
}

.etm .etm-sb-drawer {
	position: fixed;
	inset: 0;
	z-index: 99990;
	background: rgba(17, 24, 39, 0.35);
}

.etm .etm-sb-dpanel {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: min(640px, 100%);
	padding: 16px;
	background: #fff;
	box-shadow: 4px 0 24px rgba(0, 0, 0, 0.18);
}

.etm .etm-sb-dhead,
.etm .etm-sb-dfoot,
.etm .etm-sb-dctl {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.etm .etm-sb-dexw .etm-select {
	width: auto;
	height: 34px;
}

.etm .etm-sb-dbody {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	border: 1px solid #edf0f4;
	border-radius: 8px;
}

.etm .etm-sb-dtable {
	min-width: 0;
	font-size: 0.8rem;
}

.etm .etm-sb-dtable th,
.etm .etm-sb-dtable td {
	padding: 6px 4px;
}

.etm .etm-sb-dtable thead th {
	top: -1px;
}

.etm .etm-sb-dtable td.is-itm {
	background: #fffbea;
}

.etm .etm-sb-dtable tr.is-atm td {
	border-top: 2px solid var(--etm-blue);
}

.etm .etm-sb-dtable .etm-sb-bs {
	display: inline-flex;
	width: auto;
}

.etm .etm-sb-bs .b.is-sel {
	background: #1e7b3a;
	color: #fff;
}

.etm .etm-sb-bs .s.is-sel {
	background: #c2382f;
	color: #fff;
}

.etm .etm-sb-oibar {
	display: block;
	width: 60px;
	height: 8px;
	border-radius: 4px;
	background: #f3f4f6;
	overflow: hidden;
}

.etm .etm-sb-oibar i {
	display: block;
	height: 100%;
	border-radius: 4px;
}

.etm .etm-sb-oibar.c i {
	margin-left: auto;
	background: rgba(239, 90, 82, 0.55);
}

.etm .etm-sb-oibar.p i {
	background: rgba(47, 168, 79, 0.55);
}

.etm .etm-sb-dsub {
	margin: 14px 8px 6px;
	font-size: 0.9rem;
}

.etm .etm-sb-dsub small {
	display: block;
	font-weight: 400;
	color: #6b7280;
}

.etm .etm-sb-dfoot {
	padding-top: 6px;
	border-top: 1px solid #edf0f4;
}

.etm .etm-sb-dsec td {
	padding: 12px 10px 8px;
	background: #f7f8fa;
	text-align: left;
}

.etm .etm-sb-dsec small {
	display: block;
	color: #6b7280;
	font-weight: 400;
}

.etm .etm-sb-ftable td:first-child {
	text-align: left;
	padding-left: 14px;
}

/* ---------------------------------------------------------------- strategy editor (v0.8) */

.etm .etm-sb-legs tr.is-off td {
	opacity: 0.45;
}

.etm .etm-sb-legs tr.is-off td:first-child {
	opacity: 1;
}

.etm .etm-sb-on {
	width: 16px;
	height: 16px;
	accent-color: var(--etm-blue);
	cursor: pointer;
}

.etm .etm-sb-legs th,
.etm .etm-sb-legs td {
	padding: 6px 4px;
}

.etm .etm-sb-legs select.etm-sb-ex {
	max-width: 82px;
}

.etm .etm-sb-kstep {
	display: inline-flex;
	align-items: center;
	gap: 2px;
}

.etm .etm-sb-kstep button {
	width: 24px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--etm-line);
	border-radius: 6px;
	background: #fff;
	color: var(--etm-ink);
	font: inherit;
	cursor: pointer;
}

.etm .etm-sb-kstep select.etm-select {
	max-width: 84px;
}

.etm .etm-sb-legs .etm-sb-lots {
	width: 50px;
}

.etm .etm-sb-legs .etm-sb-px {
	width: 76px;
}

.etm .etm-sb-fut {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #6b7280;
}

.etm .etm-sb-paybar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin-top: 12px;
	font-size: 0.86rem;
}

.etm .etm-sb-mult {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.etm .etm-sb-mult .etm-select {
	width: 64px;
	height: 32px;
	padding: 0 6px;
}

.etm .etm-sb-dq {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin-top: 4px;
	font-size: 0.72rem;
	color: #6b7280;
}

.etm .etm-sb-dq .etm-select {
	width: 50px;
	height: 24px;
	padding: 0 4px;
	font-size: 0.78rem;
}

.etm .etm-sb-sumcard .etm-sb-stamp {
	margin: 10px 0 0;
}

.etm .etm-sb-legs .etm-select {
	height: 30px;
	padding: 0 4px;
}

.etm .etm-sb-legs select.etm-sb-ex {
	max-width: 76px;
}

.etm .etm-sb-kstep select.etm-select {
	max-width: 78px;
}

.etm .etm-sb-kstep button {
	width: 22px;
	height: 30px;
}

.etm .etm-sb-legs .etm-sb-lots {
	width: 46px;
}

.etm .etm-sb-legs .etm-sb-px {
	width: 70px;
}

.etm .etm-sb-legs .etm-sb-type {
	width: 36px;
}

/* ================================================================ hub v3 (landing)
   Colours are set with !important on purpose: the theme restyles sections,
   headings and links, and a minifier must not drop the dark base colour. */

.etm-hub2 .is-options { --acc: #38bdf8; --acc-rgb: 56, 189, 248; --base: #06182b; --base2: #0a2540; }
.etm-hub2 .is-futures { --acc: #a3e635; --acc-rgb: 163, 230, 53; --base: #0a1a0c; --base2: #12301a; }
.etm-hub2 .is-volatility { --acc: #a78bfa; --acc-rgb: 167, 139, 250; --base: #130c2a; --base2: #22154a; }
.etm-hub2 .is-premium { --acc: #fbbf24; --acc-rgb: 251, 191, 36; --base: #1d1405; --base2: #33240a; }
.etm-hub2 .is-strategy { --acc: #f472b6; --acc-rgb: 244, 114, 182; --base: #210818; --base2: #3a0f2b; }

/* hero */
.etm-hub2 .etm-hero {
	position: relative;
	margin: 0 0 20px !important;
	padding: 26px 30px 0 !important;
	overflow: hidden;
	border: 0 !important;
	border-radius: 18px;
	background-color: #070b16 !important;
	background-image:
		radial-gradient(ellipse at 90% -10%, rgba(56, 189, 248, 0.25), transparent 55%),
		radial-gradient(ellipse at -5% 110%, rgba(167, 139, 250, 0.22), transparent 55%),
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px) !important;
	background-size: auto, auto, 26px 26px, 26px 26px !important;
	color: #e5e7eb !important;
	box-shadow: 0 20px 50px -24px rgba(7, 11, 22, 0.7);
}

.etm-hub2 .etm-hero-main {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 24px;
	align-items: center;
	padding-bottom: 20px;
}

.etm-hub2 .etm-hero-eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px !important;
	padding: 4px 12px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.05);
	color: #cbd5e1 !important;
	font-size: 0.76rem;
	letter-spacing: 0.02em;
}

.etm-hub2 .etm-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #34d399;
	box-shadow: 0 0 0 4px rgba(52, 211, 153, 0.18);
}

.etm-hub2 .etm-hero-h1 {
	margin: 0 0 8px !important;
	color: #fff !important;
	font-size: clamp(1.5rem, 2.6vw, 2.1rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em;
}

.etm-hub2 .etm-hero-h1 span {
	background: linear-gradient(90deg, #38bdf8, #a78bfa 55%, #f472b6);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	-webkit-text-fill-color: transparent;
}

.etm-hub2 .etm-hero-lead {
	max-width: 520px;
	margin: 0 !important;
	color: #94a3b8 !important;
	font-size: 0.92rem;
	line-height: 1.55;
}

.etm-hub2 .etm-hero-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.etm-hub2 .etm-hero-stats div {
	padding: 10px 12px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.05);
}

.etm-hub2 .etm-hero-stats span {
	display: block;
	color: #94a3b8 !important;
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.etm-hub2 .etm-hero-stats b {
	display: block;
	margin-top: 3px;
	color: #fff !important;
	font-size: 1.08rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* category tabs along the bottom of the banner */
.etm-hub2 .etm-hero-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	margin: 0 -30px;
	padding: 10px 26px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	background: rgba(2, 6, 23, 0.45);
}

.etm-hub2 .etm-hero-tabs button {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	height: 38px;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 1px solid transparent !important;
	border-radius: 9px !important;
	background: transparent !important;
	color: #cbd5e1 !important;
	font: inherit;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-transform: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.etm-hub2 .etm-hero-tabs button i {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--acc);
	box-shadow: 0 0 8px rgba(var(--acc-rgb), 0.8);
}

.etm-hub2 .etm-hero-tabs button em {
	padding: 2px 7px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	color: #e2e8f0;
	font-size: 0.72rem;
	font-style: normal;
}

.etm-hub2 .etm-hero-tabs button:hover {
	background: rgba(255, 255, 255, 0.06) !important;
	color: #fff !important;
}

.etm-hub2 .etm-hero-tabs button.is-on {
	border-color: rgba(255, 255, 255, 0.22) !important;
	background: rgba(255, 255, 255, 0.12) !important;
	color: #fff !important;
}

.etm-hub2 .etm-hero-stamp {
	margin-left: auto;
	color: #64748b !important;
	font-size: 0.76rem;
}

/* one grid, three cards per row */
.etm-hub2 .etm-hub-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.etm-hub2 .etm-hcard {
	position: relative;
	display: grid !important;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	min-height: 196px;
	overflow: hidden;
	border: 1px solid rgba(var(--acc-rgb), 0.22) !important;
	border-radius: 16px;
	background-color: var(--base) !important;
	background-image:
		radial-gradient(ellipse at 100% 0%, rgba(var(--acc-rgb), 0.24), transparent 60%),
		linear-gradient(160deg, var(--base2), transparent 70%),
		linear-gradient(rgba(var(--acc-rgb), 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--acc-rgb), 0.07) 1px, transparent 1px) !important;
	background-size: auto, auto, 20px 20px, 20px 20px !important;
	color: #e2e8f0 !important;
	text-decoration: none !important;
	box-shadow: 0 14px 34px -22px rgba(7, 11, 22, 0.85);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.etm-hub2 .etm-hcard[hidden] {
	display: none !important;
}

.etm-hub2 a.etm-hcard:hover,
.etm-hub2 a.etm-hcard:focus-visible {
	transform: translateY(-3px);
	border-color: rgba(var(--acc-rgb), 0.65) !important;
	box-shadow: 0 22px 44px -22px rgba(var(--acc-rgb), 0.6);
	outline: none;
}

.etm-hub2 .etm-hcard::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--acc), transparent 75%);
}

.etm-hub2 .etm-hcard.is-soon {
	opacity: 0.55;
}

.etm-hub2 .etm-hcard-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 18px 6px 16px 18px;
}

.etm-hub2 .etm-hcard-cat {
	align-self: flex-start;
	margin-bottom: 10px;
	padding: 3px 9px;
	border: 1px solid rgba(var(--acc-rgb), 0.45);
	border-radius: 999px;
	background: rgba(var(--acc-rgb), 0.12);
	color: var(--acc) !important;
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.etm-hub2 .etm-hcard .etm-hcard-h {
	margin: 0 0 6px !important;
	padding: 0 !important;
	color: #ffffff !important;
	font-size: 1.12rem !important;
	font-weight: 750 !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em;
}

.etm-hub2 .etm-hcard .etm-hcard-p {
	margin: 0 !important;
	color: #cbd5e1 !important;
	font-size: 0.82rem !important;
	line-height: 1.5 !important;
}

.etm-hub2 .etm-hcard-go {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	padding-top: 12px;
	color: var(--acc) !important;
	font-size: 0.84rem;
	font-weight: 700;
}

/* blinking arrow */
.etm-hub2 .etm-hcard-go i {
	display: inline-block;
	font-style: normal;
	animation: etm-nudge 1.2s ease-in-out infinite;
}

@keyframes etm-nudge {
	0%, 100% { transform: translateX(0); opacity: 1; }
	50% { transform: translateX(5px); opacity: 0.25; }
}

@media (prefers-reduced-motion: reduce) {
	.etm-hub2 .etm-hcard-go i {
		animation: none;
	}
}

/* glance panel: graph on its own grid */
.etm-hub2 .etm-hcard-viz {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 12px 12px 12px 0;
	padding: 9px 9px 5px;
	overflow: hidden;
	border: 1px solid rgba(var(--acc-rgb), 0.2);
	border-radius: 12px;
	background-color: rgba(0, 0, 0, 0.35) !important;
	background-image:
		linear-gradient(rgba(var(--acc-rgb), 0.1) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--acc-rgb), 0.1) 1px, transparent 1px) !important;
	background-size: 14px 14px !important;
}

.etm-hub2 .etm-gv-top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 6px;
	margin-bottom: 4px;
	font-size: 0.66rem;
}

.etm-hub2 .etm-gv-top > span {
	overflow: hidden;
	color: #cbd5e1 !important;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.etm-hub2 .etm-gv-top b {
	flex: 0 0 auto;
	font-size: 0.78rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.etm-hub2 .etm-gv-svg {
	display: block;
	flex: 1 1 auto;
	width: 100%;
	height: 132px;
	margin-top: -24px;
}

.etm-hub2 .etm-gv-table {
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: collapse;
	background: transparent !important;
	color: #e2e8f0 !important;
	font-size: 0.7rem;
	font-variant-numeric: tabular-nums;
}

.etm-hub2 .etm-gv-table th,
.etm-hub2 .etm-gv-table td {
	padding: 3px 3px !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
	background: transparent !important;
	text-align: center;
}

.etm-hub2 .etm-gv-table th {
	color: #94a3b8 !important;
	font-weight: 600;
}

.etm-hub2 .etm-gv-table td:first-child {
	color: #34d399 !important;
}

.etm-hub2 .etm-gv-table td:last-child {
	color: #f87171 !important;
}

.etm-hub2 .etm-gv-table tr.is-atm td {
	background: rgba(var(--acc-rgb), 0.18) !important;
}

.etm-hub2 .etm-gv-table b {
	color: #fff !important;
}

.etm-hub2 .etm-gv-iv td:first-child {
	overflow: hidden;
	max-width: 70px;
	color: #e2e8f0 !important;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.etm-hub2 .etm-gv-iv td:last-child {
	display: flex;
	align-items: center;
	gap: 5px;
	color: #e2e8f0 !important;
}

.etm-hub2 .etm-gv-iv i {
	flex: 1 1 auto;
	height: 5px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.1);
}

.etm-hub2 .etm-gv-iv em,
.etm-hub2 .etm-gv-bars em {
	display: block;
	height: 100%;
	border-radius: 3px;
}

.etm-hub2 .etm-gv-heat {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 3px;
	flex: 1 1 auto;
}

.etm-hub2 .etm-gv-heat span {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 2px;
	border-radius: 4px;
	color: #fff !important;
	font-size: 0.58rem;
	line-height: 1.2;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.etm-hub2 .etm-gv-heat b {
	overflow: hidden;
	font-weight: 700;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.etm-hub2 .etm-gv-bars {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
}

.etm-hub2 .etm-gv-bars div {
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr) 24px;
	align-items: center;
	gap: 6px;
	color: #e2e8f0 !important;
	font-size: 0.66rem;
}

.etm-hub2 .etm-gv-bars i {
	height: 7px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.08);
}

.etm-hub2 .etm-gv-bars b {
	color: #fff !important;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 1180px) {
	.etm-hub2 .etm-hub-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.etm-hub2 .etm-hero-main {
		grid-template-columns: 1fr;
	}

	.etm-hub2 .etm-hero-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.etm-hub2 .etm-hero-stamp {
		width: 100%;
		margin: 4px 0 0 14px;
	}
}

@media (max-width: 640px) {
	.etm-hub2 .etm-hero {
		padding: 22px 18px 0 !important;
	}

	.etm-hub2 .etm-hero-tabs {
		margin: 0 -18px;
		padding: 8px 12px;
		overflow-x: auto;
		flex-wrap: nowrap;
	}

	.etm-hub2 .etm-hub-cards {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------- hub v3.1: white card, dark graph panel */

.etm-hub2 .is-options { --ink: #0369a1; }
.etm-hub2 .is-futures { --ink: #4d7c0f; }
.etm-hub2 .is-volatility { --ink: #6d28d9; }
.etm-hub2 .is-premium { --ink: #b45309; }
.etm-hub2 .is-strategy { --ink: #be185d; }

.etm-hub2 .etm-hcard {
	border: 1px solid #e3e7ee !important;
	background-color: #ffffff !important;
	background-image: none !important;
	color: #0f172a !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 22px -16px rgba(15, 23, 42, 0.25);
}

.etm-hub2 a.etm-hcard:hover,
.etm-hub2 a.etm-hcard:focus-visible {
	border-color: rgba(var(--acc-rgb), 0.75) !important;
	box-shadow: 0 16px 34px -20px rgba(var(--acc-rgb), 0.7);
}

.etm-hub2 .etm-hcard-cat {
	border-color: rgba(var(--acc-rgb), 0.55);
	background: rgba(var(--acc-rgb), 0.12);
	color: var(--ink) !important;
}

.etm-hub2 .etm-hcard .etm-hcard-h {
	color: #0f172a !important;
}

.etm-hub2 .etm-hcard .etm-hcard-p {
	color: #5b6474 !important;
}

.etm-hub2 .etm-hcard-go {
	color: var(--ink) !important;
}

/* graph panel: dark grid in the category colour */
.etm-hub2 .etm-hcard-viz {
	border: 1px solid rgba(var(--acc-rgb), 0.3);
	background-color: var(--base) !important;
	background-image:
		radial-gradient(ellipse at 100% 0%, rgba(var(--acc-rgb), 0.22), transparent 65%),
		linear-gradient(rgba(var(--acc-rgb), 0.11) 1px, transparent 1px),
		linear-gradient(90deg, rgba(var(--acc-rgb), 0.11) 1px, transparent 1px) !important;
	background-size: auto, 14px 14px, 14px 14px !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

/* ---------------------------------------------------------------- sentiment module (v1.0) */

.etm .etm-senti-band {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 18px;
	align-items: center;
	margin-bottom: 16px;
	padding: 16px 18px;
	border-left: 4px solid var(--etm-blue);
}

.etm .etm-senti-kicker {
	margin: 0 0 4px;
	color: var(--etm-mute);
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.etm .etm-senti-h {
	margin: 0 0 12px;
	font-size: 1.15rem;
	font-weight: 750;
}

.etm .etm-senti-drivers {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.etm .etm-senti-drivers div {
	display: grid;
	grid-template-columns: minmax(150px, 210px) minmax(80px, 1fr) 40px;
	align-items: center;
	gap: 10px;
	font-size: 0.84rem;
}

.etm .etm-senti-drivers small {
	color: var(--etm-mute);
}

.etm .etm-senti-drivers i {
	position: relative;
	height: 8px;
	border-radius: 4px;
	background: #eef1f5;
}

.etm .etm-senti-drivers i::after {
	content: "";
	position: absolute;
	top: -3px;
	bottom: -3px;
	left: 50%;
	width: 1px;
	background: #c9ced8;
}

.etm .etm-senti-drivers em {
	position: absolute;
	top: 0;
	bottom: 0;
	border-radius: 4px;
}

.etm .etm-senti-drivers b {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.etm .etm-senti-gauge {
	position: relative;
	text-align: center;
}

.etm .etm-senti-svg {
	display: block;
	width: 100%;
	max-width: 260px;
	margin: 0 auto;
}

.etm .etm-senti-read {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: -4px;
}

.etm .etm-senti-read b {
	font-size: 1.7rem;
	font-weight: 800;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.etm .etm-senti-pill {
	padding: 3px 12px;
	border-radius: 999px;
	color: #fff;
	font-size: 0.78rem;
	font-weight: 700;
}

.etm .etm-senti-more {
	margin-top: 18px;
}

.etm .etm-senti-rule {
	margin: 0 0 14px;
	color: var(--etm-sub);
	line-height: 1.6;
}

.etm .etm-senti-table td small {
	display: block;
	margin-top: 2px;
	color: var(--etm-mute);
	font-size: 0.78rem;
	font-weight: 400;
}

.etm .etm-senti-table td:first-child {
	text-align: left;
	max-width: 360px;
}

.etm .etm-senti-table {
	min-width: 0;
}

.etm .etm-senti-bands {
	margin-top: 12px;
}

.etm .etm-senti-bands small {
	color: var(--etm-mute);
}

@media (max-width: 760px) {
	.etm .etm-senti-band {
		grid-template-columns: 1fr;
	}

	.etm .etm-senti-band .etm-senti-gauge {
		order: -1;
	}

	.etm .etm-senti-drivers div {
		grid-template-columns: minmax(0, 1fr) 90px 36px;
	}
}

.etm .etm-senti-table td {
	white-space: normal;
}

.etm .etm-senti-table td:first-child {
	width: 46%;
}

.etm .etm-senti-track {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 10px;
	margin: 0 0 16px;
}

.etm .etm-senti-track div {
	padding: 12px 14px;
	border: 1px solid var(--etm-line);
	border-radius: 10px;
	background: #f8fafc;
}

.etm .etm-senti-track b {
	display: block;
	font-size: 1.35rem;
	font-weight: 800;
}

.etm .etm-senti-track span {
	color: var(--etm-sub);
	font-size: 0.82rem;
	line-height: 1.45;
}

.etm .etm-senti-chart {
	height: 540px;
}

.etm .etm-senti-legend {
	align-items: center;
}

.etm .etm-senti-legend span i + i {
	margin-left: -2px;
}

.etm .etm-senti-ema {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 9px;
	border: 1px solid var(--etm-line);
	border-radius: 999px;
	background: #fff;
	color: var(--etm-mute);
	font: inherit;
	font-size: 0.8rem;
	cursor: pointer;
	opacity: 0.55;
}

.etm .etm-senti-ema.is-on {
	color: var(--etm-ink);
	opacity: 1;
}

.etm .etm-senti-ema i {
	display: inline-block;
	width: 14px;
	height: 3px;
	border-radius: 2px;
}

/* ---------------------------------------------------------------- sentiment: visual how-to (v0.11) */

.etm .etm-senti-xd {
	margin: 12px 0 0;
	padding: 9px 12px;
	border: 1px solid #fcd34d;
	border-radius: 8px;
	background: #fffbeb;
	color: #92400e;
	font-size: 0.84rem;
	line-height: 1.5;
}

.etm .etm-senti-e {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-right: 6px;
	border-radius: 50%;
	background: #64748b;
	color: #fff;
	font-size: 0.62rem;
}

.etm .etm-senti-lead {
	margin: 0 0 14px;
	font-size: 0.98rem;
	line-height: 1.6;
}

.etm .etm-vsteps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.etm .etm-vstep {
	display: flex;
	flex-direction: column;
	padding: 14px 16px;
	border: 1px solid var(--etm-line);
	border-radius: 12px;
	background: #fff;
}

.etm .etm-vfinal {
	border-color: #c7d2fe;
	background: #f8faff;
}

.etm .etm-vstep-h {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}

.etm .etm-vstep-h em {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--etm-blue);
	color: #fff;
	font-size: 0.8rem;
	font-style: normal;
	font-weight: 700;
}

.etm .etm-vstep-h b {
	font-size: 0.98rem;
}

.etm .etm-vstep-h span {
	margin-left: auto;
	color: var(--etm-mute);
	font-size: 0.74rem;
	white-space: nowrap;
}

.etm .etm-vsub {
	margin: 0 0 10px;
	color: var(--etm-sub);
	font-size: 0.8rem;
	line-height: 1.45;
}

.etm .etm-vviz {
	min-height: 96px;
	margin-bottom: 10px;
}

.etm .etm-vsvg {
	display: block;
	width: 100%;
	height: auto;
}

.etm .etm-pcb {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) 92px;
	align-items: center;
	gap: 8px;
	margin: 8px 0;
	font-size: 0.82rem;
}

.etm .etm-pcb i {
	height: 14px;
	border-radius: 4px;
	background: #f1f5f9;
}

.etm .etm-pcb em {
	display: block;
	height: 100%;
	border-radius: 4px;
}

.etm .etm-pcb b {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.etm .etm-pcb small {
	color: var(--etm-mute);
	font-weight: 400;
}

.etm .etm-d5 {
	display: flex;
	gap: 6px;
	justify-content: space-between;
}

.etm .etm-d5c {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	align-items: center;
}

.etm .etm-d5u,
.etm .etm-d5d {
	display: flex;
	width: 100%;
	height: 46px;
	justify-content: center;
}

.etm .etm-d5u {
	align-items: flex-end;
	border-bottom: 1px solid #94a3b8;
}

.etm .etm-d5d {
	align-items: flex-start;
}

.etm .etm-d5c em {
	display: block;
	width: 60%;
	border-radius: 3px;
}

.etm .etm-d5c span {
	margin-top: 2px;
	color: var(--etm-mute);
	font-size: 0.7rem;
	white-space: nowrap;
}

.etm .etm-vmove {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 18px 0;
	font-size: 1.5rem;
	font-variant-numeric: tabular-nums;
}

.etm .etm-vmove span {
	color: var(--etm-mute);
}

.etm .etm-vmove i {
	color: var(--etm-mute);
	font-style: normal;
}

.etm .etm-vmove b {
	font-weight: 800;
}

.etm .etm-vres {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-top: auto;
	font-size: 0.82rem;
}

.etm .etm-vres b {
	font-size: 1.3rem;
	font-weight: 800;
}

.etm .etm-sm {
	margin-top: 6px;
}

.etm .etm-sm-bar {
	position: relative;
	display: flex;
	height: 8px;
	overflow: visible;
	border-radius: 4px;
}

.etm .etm-sm.is-big .etm-sm-bar {
	height: 12px;
}

.etm .etm-sm-bar i:first-child {
	border-radius: 4px 0 0 4px;
}

.etm .etm-sm-bar i:nth-child(5) {
	border-radius: 0 4px 4px 0;
}

.etm .etm-sm-bar b {
	position: absolute;
	top: -5px;
	width: 4px;
	height: calc(100% + 10px);
	margin-left: -2px;
	border-radius: 2px;
	background: #0f172a;
	box-shadow: 0 0 0 2px #fff;
}

.etm .etm-sm-ends {
	display: flex;
	justify-content: space-between;
	margin-top: 3px;
	color: var(--etm-mute);
	font-size: 0.68rem;
}

.etm .etm-vrule {
	margin: 8px 0 0;
	color: var(--etm-mute);
	font-size: 0.76rem;
	line-height: 1.45;
}

.etm .etm-veq {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 14px 0 16px;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
}

.etm .etm-veq i {
	color: var(--etm-mute);
	font-style: normal;
}

.etm .etm-veq strong {
	font-size: 1.8rem;
	font-weight: 800;
}

.etm .etm-vband {
	margin: 10px 0 0;
	text-align: center;
}

.etm .etm-senti-note {
	margin: 16px 0;
	padding: 12px 14px;
	border-left: 4px solid var(--etm-blue);
	border-radius: 6px;
	background: #f1f5ff;
	font-size: 0.88rem;
	line-height: 1.55;
}

.etm .etm-vh3 {
	margin: 18px 0 10px;
	font-size: 1rem;
}

.etm .etm-vdetails {
	margin-top: 14px;
	padding: 10px 14px;
	border: 1px solid var(--etm-line);
	border-radius: 10px;
}

.etm .etm-vdetails summary {
	cursor: pointer;
	font-weight: 600;
}

@media (max-width: 980px) {
	.etm .etm-vsteps {
		grid-template-columns: 1fr;
	}
}

/* ================================================================ OI Walls (v0.12) */
.etm .etm-walls { padding-top: 4px; }
.etm .etm-wtiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.etm .etm-wtile { border: 1px solid var(--etm-line); border-top: 3px solid #94a3b8; border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; min-width: 0; background: #fff; }
.etm .etm-wtile.is-res { border-top-color: var(--etm-red); }
.etm .etm-wtile.is-sup { border-top-color: var(--etm-green); }
.etm .etm-wtile.is-cen { border-top-color: var(--etm-blue); }
.etm .etm-wtile.is-type { border-top-color: #0f172a; background: #f8fafc; }
.etm .etm-wlab { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--etm-mute); font-weight: 600; }
.etm .etm-wbig { font-size: 22px; font-weight: 700; line-height: 1.2; color: var(--etm-ink); }
.etm .etm-wtile.is-res .etm-wbig { color: #c2410c; color: var(--etm-red); }
.etm .etm-wtile.is-sup .etm-wbig { color: var(--etm-green); }
.etm .etm-wsub { font-size: 12px; color: var(--etm-sub); }
.etm .etm-wsub .is-add { color: #0f172a; }
.etm .etm-wsub .is-cut { color: #b45309; }
.etm .etm-wchip { align-self: flex-start; margin-top: 2px; font-size: 11px; padding: 1px 8px; border-radius: 999px; background: #f1f5f9; color: #475569; }
.etm .etm-wchip.is-up { background: #e7f6ec; color: #166534; }
.etm .etm-wchip.is-down { background: #fdecea; color: #b91c1c; }
.etm .etm-wread { margin: 10px 0 0; padding: 9px 12px; background: #f8fafc; border-left: 3px solid #0f172a; border-radius: 6px; font-size: 13px; color: var(--etm-sub); }
.etm .etm-whead { margin-top: 14px; }
.etm .etm-walls-chart { height: 420px; }
.etm .etm-wtable { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 8px; }
.etm .etm-tablewrap { overflow-x: auto; }
.etm .etm-wtable th, .etm .etm-wtable td { padding: 6px 8px; border-bottom: 1px solid var(--etm-line); text-align: right; white-space: nowrap; }
.etm .etm-wtable th:first-child, .etm .etm-wtable td:first-child { text-align: left; }
.etm .etm-wtable th { font-size: 11px; color: var(--etm-mute); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.etm .etm-wtable td.is-res { color: var(--etm-red); font-weight: 600; }
.etm .etm-wtable td.is-sup { color: var(--etm-green); font-weight: 600; }
.etm .etm-wtable em { font-style: normal; }
.etm .etm-wtable em.is-up { color: #16a34a; }
.etm .etm-wtable em.is-down { color: #dc2626; }
.etm .etm-wtable tr.is-xd td { background: #fafafa; }
.etm .etm-wtable small { font-size: 10px; color: #64748b; border: 1px solid #cbd5e1; border-radius: 3px; padding: 0 3px; }
.etm .etm-wevid { margin-top: 14px; border: 1px solid var(--etm-line); border-radius: 8px; padding: 12px 14px; }
.etm .etm-wevid h3 { margin: 0 0 8px; font-size: 14px; }
.etm .etm-wevid h3 small { font-weight: 400; color: var(--etm-mute); font-size: 12px; margin-left: 6px; }
.etm .etm-wevid ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.etm .etm-wevid li { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; }
.etm .etm-wevid li i { flex: 0 0 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 12px; color: #fff; }
.etm .etm-wevid li.is-ok i { background: #16a34a; }
.etm .etm-wevid li.is-mid i { background: #d97706; }
.etm .etm-wevid li.is-no i { background: #94a3b8; }
.etm .etm-wevid li b { display: block; color: var(--etm-ink); }
.etm .etm-wevid li span { color: var(--etm-sub); }
@media (max-width: 860px) {
	.etm .etm-wtiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.etm .etm-wevid ul { grid-template-columns: 1fr; }
	.etm .etm-walls-chart { height: 340px; }
}

/* ================================================================ sharing (v0.13) */
.etm .etm-h1row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.etm .etm-h1row .etm-h1 { margin-right: auto; }
.etm .etm-sumshare { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; border: 0; background: #0f172a; color: #fff; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.etm .etm-sumshare:hover { background: #1e293b; }
.etm .etm-shareable { position: relative; }
.etm .etm-share-btn { position: absolute; top: 8px; right: 8px; z-index: 5; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--etm-line); background: #fff; color: #475569; cursor: pointer; opacity: .75; transition: opacity .15s, color .15s; padding: 0; }
.etm .etm-share-btn:hover { opacity: 1; color: var(--etm-blue); border-color: #bfdbfe; }
.etm .etm-panel[data-share] > .etm-panel-head { padding-right: 40px; }
.etm .etm-mini[data-share] .etm-mini-title, .etm .etm-senti-band[data-share] .etm-senti-sum { padding-right: 34px; }
.etm.etm-capturing .etm-seg, .etm.etm-capturing .etm-walls .etm-tablewrap, .etm.etm-capturing .etm-walls .etm-wevid, .etm.etm-capturing .etm-senti-ema:not(.is-on), .etm.etm-capturing .etm-walls .etm-mini-sub { display: none !important; }

.etm-share-ov { position: fixed; inset: 0; z-index: 100000; background: rgba(15, 23, 42, .55); display: flex; align-items: flex-start; justify-content: center; padding: 4vh 12px; overflow-y: auto; }
.etm-share-ov .etm-share-box { background: #fff; border-radius: 12px; width: min(980px, 100%); box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.etm-share-ov .etm-share-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid #e4e8ee; font-size: 15px; }
.etm-share-ov .etm-share-x { border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: #64748b; }
.etm-share-ov .etm-share-body { padding: 14px 16px 16px; }
.etm-share-ov .etm-share-wait { color: #475569; font-size: 14px; padding: 30px 0; text-align: center; }
.etm-share-ov .etm-share-imgs { display: grid; grid-template-columns: 1fr; gap: 12px; }
.etm-share-ov .etm-share-imgs.is-multi { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); max-height: 46vh; overflow-y: auto; padding-right: 4px; }
.etm-share-ov figure { margin: 0; border: 1px solid #e4e8ee; border-radius: 8px; overflow: hidden; background: #f8fafc; }
.etm-share-ov figure img { display: block; width: 100%; height: auto; }
.etm-share-ov .etm-share-imgs:not(.is-multi) figure img { max-height: 52vh; object-fit: contain; }
.etm-share-ov figcaption { display: flex; gap: 6px; padding: 6px; }
.etm-share-ov figcaption button { flex: 1; font: inherit; font-size: 12px; padding: 5px 6px; border: 1px solid #e4e8ee; border-radius: 6px; background: #fff; cursor: pointer; }
.etm-share-ov .etm-share-lab { display: block; margin: 12px 0 4px; font-size: 12.5px; font-weight: 600; color: #334155; }
.etm-share-ov .etm-share-lab small { font-weight: 400; color: #94a3b8; }
.etm-share-ov .etm-share-txt { width: 100%; box-sizing: border-box; font: 13px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px 10px; resize: vertical; }
.etm-share-ov .etm-share-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.etm-share-ov .etm-share-acts button { font: inherit; font-size: 13.5px; font-weight: 600; padding: 8px 14px; border-radius: 8px; border: 1px solid #cbd5e1; background: #fff; cursor: pointer; }
.etm-share-ov .etm-share-acts button.is-main { background: #2563eb; border-color: #2563eb; color: #fff; }
.etm-share-ov .etm-share-acts button.is-x { background: #0f172a; border-color: #0f172a; color: #fff; }
.etm-share-ov .etm-share-acts button.is-fb { background: #1877f2; border-color: #1877f2; color: #fff; }
.etm-share-ov .etm-share-hint { margin: 10px 0 0; font-size: 12.5px; color: #64748b; }
.etm-share-ov .etm-share-hint.is-ok { color: #166534; }

/* summary image card (off screen while it is captured) */
.etm.etm-sc { position: fixed; left: -20000px; top: 0; width: 1000px; background: #fff; }
.etm.etm-sc .etm-sc-in { padding: 22px 26px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: #0f172a; background: #fff; }
.etm.etm-sc .etm-sc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.etm.etm-sc .etm-sc-row { border: 1px solid #e4e8ee; border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; }
.etm.etm-sc .etm-sc-row span { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #64748b; font-weight: 600; }
.etm.etm-sc .etm-sc-row b { font-size: 26px; line-height: 1.2; }
.etm.etm-sc .etm-sc-row small { font-size: 13px; color: #64748b; }
.etm.etm-sc .etm-sc-read { margin-top: 16px; padding: 12px 16px; background: #f8fafc; border-left: 4px solid #0f172a; border-radius: 8px; }
.etm.etm-sc .etm-sc-read p { margin: 4px 0; font-size: 15px; line-height: 1.5; color: #334155; }
@media (max-width: 640px) { .etm .etm-sumshare { width: 100%; justify-content: center; } }

/* ================================================================ max pain track (v0.14) */
.etm .etm-mpt-chart { height: 420px; }
.etm .etm-mpr-lead { margin: 0 0 10px; font-size: 14px; line-height: 1.55; color: var(--etm-sub); }
.etm .etm-mpr-lead b { color: var(--etm-ink); }
.etm .etm-mpr-table td { text-align: center; }
.etm .etm-mpr-table td:first-child { text-align: left; }
.etm .etm-mpr-pair { display: inline-flex; gap: 6px; align-items: baseline; }
.etm .etm-mpr-pair b { font-weight: 500; color: var(--etm-sub); }
.etm .etm-mpr-pair b.is-win { font-weight: 700; color: var(--etm-ink); }
.etm .etm-mpr-pair i { font-style: normal; font-size: 11px; color: var(--etm-mute); }
.etm .etm-mpr-sub { margin: 16px 0 4px; }
.etm .etm-mpr-note ul { grid-template-columns: 1fr 1fr; }
.etm .etm-mpr-warn { margin: 10px 0 0; padding: 8px 12px; background: #fff7ed; border-left: 3px solid #f59e0b; border-radius: 6px; font-size: 13px; color: #7c2d12; }
@media (max-width: 860px) { .etm .etm-mpt-chart { height: 340px; } }

/* ================================================================ PCR (v0.15) */
.etm .etm-pcr-main { height: 560px; }
.etm .etm-pcr-sum { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
@media (max-width: 860px) { .etm .etm-pcr-main { height: 460px; } .etm .etm-pcr-sum { grid-template-columns: 1fr; } }
/* PCR positioning band + tables (v0.16) */
.etm .etm-pcrb-line { margin: 6px 0 4px; font-size: 14.5px; color: var(--etm-sub); }
.etm .etm-pcrb-line b { color: var(--etm-ink); }
.etm .etm-pcrb-note { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--etm-mute); }
.etm .etm-pcrb-meter { width: 100%; max-width: 300px; margin: 18px auto 0; }
.etm .etm-pcrb-bar { position: relative; display: flex; height: 14px; border-radius: 999px; overflow: visible; }
.etm .etm-pcrb-bar i { display: block; height: 100%; }
.etm .etm-pcrb-bar i:first-child { border-radius: 999px 0 0 999px; }
.etm .etm-pcrb-bar i:nth-child(3) { border-radius: 0 999px 999px 0; }
.etm .etm-pcrb-bar b { position: absolute; top: -5px; width: 4px; height: 24px; margin-left: -2px; background: #0f172a; border-radius: 2px; }
.etm .etm-pcrb-ends { display: flex; justify-content: space-between; font-size: 11px; color: var(--etm-mute); margin-top: 6px; }
.etm .etm-pcrb-read { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 14px; }
.etm .etm-pcrb-read strong { font-size: 30px; line-height: 1; }
.etm .etm-pcrb-read strong small { font-size: 13px; font-weight: 500; margin-left: 2px; color: var(--etm-mute); }
.etm .etm-wtable tr.is-sel td { background: #eff6ff; }
.etm .etm-wtable td small { font-size: 10.5px; color: #64748b; margin-left: 4px; }
.etm .etm-muted { color: var(--etm-mute); }

/* ================================================================ hub v4 + ticker (v0.18) */
.etm-hub2 .is-options { --acc: #0369a1; --acc-rgb: 56, 189, 248; --base: #06182b; --base2: #0a2540; }
.etm-hub2 .is-futures { --acc: #3f6212; --acc-rgb: 163, 230, 53; --base: #0a1a0c; --base2: #12301a; }
.etm-hub2 .is-volatility { --acc: #6d28d9; --acc-rgb: 167, 139, 250; --base: #130c2a; --base2: #22154a; }
.etm-hub2 .is-premium { --acc: #b45309; --acc-rgb: 251, 191, 36; --base: #1d1405; --base2: #33240a; }
.etm-hub2 .is-strategy { --acc: #be185d; --acc-rgb: 244, 114, 182; --base: #210818; --base2: #3a0f2b; }

.etm-hub2 .etm-hcard {
	border: 1px solid #c6c6c9 !important;
	background-color: #ffffff !important;
	background-image: none !important;
	color: #0f172a !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 22px -16px rgba(15, 23, 42, 0.25);
}
.etm-hub2 .etm-hcard-viz {
	border: 1px solid #e0e3ed;
	background-color: #e8eaf0 !important;
	background-image: radial-gradient(ellipse at 100% 0%, rgba(var(--acc-rgb), 0.22), transparent 100% 100%), linear-gradient(rgba(var(--acc-rgb), 0.11) 1px, transparent 1px), linear-gradient(90deg, #e0e3ed 1px, transparent 1px) !important;
	background-size: auto, 14px 14px, 14px 14px !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.etm-hub2 .etm-hcard-cat { border-color: rgb(184 255 55); background: #c5ff3e; color: #000000 !important; }
.etm-hub2 .etm-hcard .etm-hcard-h { color: #0f172a !important; }
.etm-hub2 .etm-hcard .etm-hcard-p { color: #334155 !important; }
.etm-hub2 .etm-hcard-go { color: var(--acc) !important; }

/* preview text on the light grid: deep colours */
.etm-hub2 .etm-gv-top > span { color: #1e293b !important; font-weight: 600; }
.etm-hub2 .etm-gv-table { color: #0f172a !important; }
.etm-hub2 .etm-gv-table th { color: #475569 !important; }
.etm-hub2 .etm-gv-table th, .etm-hub2 .etm-gv-table td { border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important; }
.etm-hub2 .etm-gv-table td:first-child { color: #15803d !important; }
.etm-hub2 .etm-gv-table td:last-child { color: #b91c1c !important; }
.etm-hub2 .etm-gv-table b { color: #0f172a !important; }
.etm-hub2 .etm-gv-iv td:first-child, .etm-hub2 .etm-gv-iv td:last-child { color: #0f172a !important; }
.etm-hub2 .etm-gv-iv i, .etm-hub2 .etm-gv-bars i { background: rgba(15, 23, 42, 0.1); }
.etm-hub2 .etm-gv-bars div { color: #1e293b !important; }
.etm-hub2 .etm-gv-bars b { color: #0f172a !important; }

.etm .etm-wtable tr.is-sel td { background: #66ffd7; }
.etm .etm-table thead th { position: sticky; top: 0; z-index: 1; background: #f5c842; color: var(--etm-ink); font-weight: 600; font-size: 0.8rem; }

/* simple category tabs (same look as the tool tabs) */
.etm .etm-cat-tabs button.etm-tab { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; cursor: pointer; font-family: inherit; }
.etm .etm-cat-tabs button.etm-tab:hover { background: var(--etm-bg); }
.etm .etm-cat-tabs button.etm-tab.is-active { background: var(--etm-blue-soft); color: var(--etm-blue); }
.etm .etm-cat-tabs .etm-tab i { width: 7px; height: 7px; border-radius: 50%; background: var(--acc, #94a3b8); }
.etm .etm-cat-tabs .etm-tab em { font-style: normal; font-size: 0.72rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: #eef2f7; color: #334155; }
.etm .etm-cat-tabs .etm-tab.is-active em { background: #dbeafe; color: #1d4ed8; }
.etm-hub2 .etm-hub-h1 { margin: 4px 0 14px; font-size: 1.35rem; }
.etm-hub2 .etm-hub-h1 small { display: block; margin-top: 2px; font-size: 0.85rem; font-weight: 400; color: var(--etm-sub); }

/* scrolling key-numbers strip */
.etm .etm-ticker { display: flex; align-items: stretch; margin: 0 0 10px; border: 1px solid var(--etm-line); border-radius: 10px; background: #0f172a; overflow: hidden; }
.etm .etm-ticker-tag { flex: 0 0 auto; display: flex; align-items: center; padding: 0 12px; background: #1e293b; color: #f5c842; font-size: 0.72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.etm .etm-ticker-view { flex: 1 1 auto; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.etm .etm-ticker-track { display: inline-flex; white-space: nowrap; animation: etm-tick 60s linear infinite; }
.etm .etm-ticker:hover .etm-ticker-track { animation-play-state: paused; }
.etm .etm-ticker-dup { display: inline-flex; }
.etm .etm-tick { display: inline-flex; align-items: baseline; gap: 6px; padding: 8px 18px; border-right: 1px solid rgba(255, 255, 255, 0.08); text-decoration: none; color: #e2e8f0 !important; font-size: 0.82rem; }
.etm .etm-tick span { color: #94a3b8; }
.etm .etm-tick b { color: #ffffff; font-variant-numeric: tabular-nums; }
.etm .etm-tick.is-up b { color: #4ade80; }
.etm .etm-tick.is-down b { color: #f87171; }
.etm .etm-tick:hover b { text-decoration: underline; }
@keyframes etm-tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .etm .etm-ticker-track { animation: none; } .etm .etm-ticker-view { overflow-x: auto; } }
.etm-hub2 .etm-gv-heat span { color: #0f172a !important; }
@media (max-width: 640px) { .etm .etm-cat-tabs { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; width: 100%; } .etm .etm-ticker-tag { padding: 0 8px; font-size: 0.66rem; } }

/* ---------- v0.19 PE - CE Difference */
.etm .etm-pece-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 4px 0 12px; }
.etm .etm-pece-bar .etm-seg:first-child { margin-right: auto; }
.etm .etm-pece-main { height: 560px; }
.etm .etm-pece-h3 { margin: 18px 0 6px; }
.etm .etm-pece-last b { font-weight: 700; }
.etm .etm-d10 .etm-d5c span { font-size: 10px; }
.etm .etm-pece-fact { margin: 10px 0 0; padding: 10px 12px; border-left: 3px solid #7c3aed; background: #f5f3ff; color: #1e1b4b; font-size: 13px; line-height: 1.5; border-radius: 6px; }
.etm .etm-pece-fact.etm-muted { border-left-color: #94a3b8; background: #f8fafc; color: #334155; }
.etm .etm-table tr.is-xd td { opacity: .7; }
.etm .etm-table tr.is-xd td small { color: #64748b; font-weight: 700; }
.etm .etm-pece-bt td { text-align: left; vertical-align: top; font-size: 13px; }
.etm .etm-pece-bt td:nth-child(3), .etm .etm-pece-bt td:nth-child(4), .etm .etm-pece-bt td:nth-child(5) { text-align: center; font-weight: 600; white-space: nowrap; }
.etm.etm-capturing .etm-pece-bar { display: none; }
@media (max-width: 640px) { .etm .etm-pece-main { height: 460px; } .etm .etm-pece-bar .etm-seg:first-child { margin-right: 0; width: 100%; } }

/* ---------- v0.21 option chain insights */
.etm .etm-chain-ins { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.etm .etm-chain-ins .etm-mini { margin: 0; display: flex; flex-direction: column; }
.etm .etm-ci-sub { margin: -4px 0 10px; font-size: 12px; color: #64748b; }
.etm .etm-ci-big { display: flex; align-items: baseline; gap: 10px; font-size: 24px; font-weight: 700; margin: 4px 0 8px; }
.etm .etm-ci-big i { font-size: 13px; font-style: normal; color: #64748b; font-weight: 500; }
.etm .etm-ci-bar { position: relative; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #fecaca, #e2e8f0 50%, #bbf7d0); margin: 4px 0 10px; }
.etm .etm-ci-bar em { position: absolute; top: -4px; width: 4px; height: 16px; margin-left: -2px; background: #0f172a; border-radius: 2px; }
.etm .etm-ci-note { font-size: 13px; color: #334155; margin: 6px 0; line-height: 1.5; }
.etm .etm-ci-state { font-size: 18px; font-weight: 700; margin: 2px 0 8px; }
.etm .etm-ci-fact { margin: auto 0 0; padding: 8px 10px; border-left: 3px solid #7c3aed; background: #f5f3ff; color: #1e1b4b; font-size: 12px; line-height: 1.5; border-radius: 6px; }
.etm .etm-ci-spark { width: 100%; height: 44px; margin-top: 8px; }
.etm .etm-chain-ins .etm-kv dd small, .etm .etm-chain-ins .etm-kv dt small { font-weight: 500; color: #64748b; }
.etm .etm-chain-ins .etm-kv dd small.is-up { color: #16a34a; } .etm .etm-chain-ins .etm-kv dd small.is-down { color: #dc2626; }
.etm .etm-chain td.etm-strike { cursor: pointer; }
.etm .etm-chain td.etm-strike:hover { background: #ede9fe; text-decoration: underline; }
.etm .etm-chain-tip { font-size: 12px; color: #6d28d9; margin: 8px 0 0; }
.etm-sh-sum { display: flex; flex-wrap: wrap; gap: 14px; font-size: 13px; margin-bottom: 10px; }
.etm-sh-sum b { font-size: 15px; } .etm-sh-sum small { color: #64748b; }
.etm-sh-sum .is-up { color: #16a34a; } .etm-sh-sum .is-down { color: #dc2626; }
.etm-share-ov .etm-sh-chart { height: 420px; }
@media (max-width: 1100px) { .etm .etm-chain-ins { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .etm .etm-chain-ins { grid-template-columns: 1fr; } .etm-share-ov .etm-sh-chart { height: 340px; } }
.etm .etm-pece-bt { table-layout: auto; }
.etm .etm-pece-bt td, .etm .etm-pece-bt th { white-space: normal; }
.etm .etm-pece-bt td:nth-child(3), .etm .etm-pece-bt td:nth-child(4), .etm .etm-pece-bt td:nth-child(5) { white-space: nowrap; }
.etm .etm-pece-bt td:last-child { min-width: 220px; }

/* ---------- v0.22 futures heatmap */
.etm .etm-hg tr[data-grp] { cursor: pointer; }
.etm .etm-hg tr[data-grp]:hover td { background: #f1f5f9; }
.etm .etm-hg tr.is-sel td { background: #66ffd7; }
.etm .etm-hm { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.etm .etm-hm-h { margin: 0 0 6px; font-size: 13px; }
.etm .etm-hm-h.is-up { color: #15803d; } .etm .etm-hm-h.is-down { color: #b91c1c; }
.etm .etm-hm-row { display: flex; gap: 8px; align-items: center; font-size: 13px; padding: 5px 0; border-bottom: 1px solid #eef0f4; }
.etm .etm-hm-row b { flex: 1; }
.etm .etm-hm-row em { font-style: normal; font-size: 10px; font-weight: 700; text-transform: uppercase; background: #0f172a; color: #fff; border-radius: 4px; padding: 1px 5px; }
.etm .etm-hm + .etm-ci-fact { margin-top: 12px; }
.etm.etm-fut .etm-h1row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.etm.etm-fut .etm-bar .etm-seg { flex-wrap: wrap; }
@media (max-width: 640px) { .etm .etm-hm { grid-template-columns: 1fr; } }
.etm .etm-hg th, .etm .etm-hg td { padding: 7px 8px; font-size: 13px; }
.etm .etm-hg td:first-child { text-align: left; }
.etm.etm-fut .etm-pece-bt td { text-align: left; }
.etm.etm-fut .etm-pece-bt td:nth-child(3) { text-align: center; }
.etm.etm-fut .etm-duo-even { align-items: stretch; }
.etm .etm-hduo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; margin-bottom: 16px; }
.etm .etm-hduo .etm-mini { margin: 0; }
.etm .etm-hg { min-width: 0; width: 100%; }
@media (max-width: 1100px) { .etm .etm-hduo { grid-template-columns: 1fr; } }
/* futures build-up strip */
.etm .etm-fbs { display: flex; gap: 4px; flex-wrap: wrap; }
.etm .etm-fbs-c { flex: 1 0 34px; min-width: 34px; border-radius: 6px; color: #fff; text-align: center; padding: 6px 2px; }
.etm .etm-fbs-c b { display: block; font-size: 12px; }
.etm .etm-fbs-c span { display: block; font-size: 10px; opacity: .9; }
.etm .etm-fbs-c.is-big { flex: 0 0 auto; padding: 10px 16px; }
.etm .etm-fbs-c.is-big b { font-size: 18px; }
.etm.etm-fut .etm-trio { margin-bottom: 16px; }
.etm .etm-fbs-c[style*="#6fcfb0"], .etm .etm-fbs-c[style*="#ffbf4f"], .etm .etm-fbs-c[style*="#a3aab5"] { color: #0f172a; }
/* html2canvas ignores flex gap: stack score and pill with margins so shared images do not overlap */
.etm .etm-senti-read { display: block; text-align: center; }
.etm .etm-senti-read b { display: block; margin: 0 0 8px; line-height: 1.1; }
.etm .etm-senti-read .etm-senti-pill { display: inline-block; line-height: 1.4; }
.etm .etm-pvo-chart { height: 720px; }
@media (max-width: 640px) { .etm .etm-pvo-chart { height: 560px; } }

/* ---------- v0.25 volatility tools */
.etm .etm-vc-chart { height: 620px; }
.etm .etm-vr-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px; align-items: start; margin-bottom: 14px; }
.etm .etm-vr-big { font-size: 30px; font-weight: 800; margin: 0 0 10px; }
.etm .etm-vr-big small { font-size: 15px; font-weight: 700; margin-left: 6px; }
.etm .etm-vrm-bar { position: relative; display: flex; height: 12px; border-radius: 6px; overflow: hidden; }
.etm .etm-vrm-bar i { display: block; height: 100%; }
.etm .etm-vrm-bar b { position: absolute; top: -3px; width: 4px; height: 18px; margin-left: -2px; background: #0f172a; border-radius: 2px; }
.etm .etm-vrm { position: relative; padding-top: 3px; }
.etm .etm-vrm-ends { display: flex; justify-content: space-between; font-size: 11px; color: #64748b; margin-top: 4px; }
.etm .etm-vr-table td, .etm .etm-vr-table th { white-space: normal; }
.etm .etm-vr-table tr.is-sel td { background: #66ffd7; }
.etm .etm-vr-table td small { color: #0f172a; font-weight: 700; }
.etm .etm-hm.etm-hm3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .etm .etm-vr-grid, .etm .etm-hm.etm-hm3 { grid-template-columns: 1fr; } .etm .etm-vc-chart { height: 520px; } }

/* v0.26.4 GEX top reading */
.etm-gt-head{display:flex;flex-wrap:wrap;align-items:center;margin:4px 0 12px}
.etm-gt-pill{display:inline-block;color:#fff;font-size:15px;font-weight:700;padding:6px 14px;border-radius:999px;margin:0 12px 6px 0}
.etm-gt-head p{margin:0 0 6px;flex:1 1 280px;font-size:14px;color:#334155}
.etm-gt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.etm-gt-tile{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;background:#fafafa}
.etm-gt-tile span{display:block;font-size:12px;color:#64748b;margin-bottom:4px}
.etm-gt-tile b{display:block;font-size:18px;line-height:1.3}
.etm-gt-tile b small{font-size:12px;font-weight:500;color:#64748b;margin-left:4px}
.etm-gt-tile p{margin:6px 0 0;font-size:12.5px;color:#475569;line-height:1.4}
.etm-gt-foot{margin:12px 0 0;font-size:12.5px;color:#475569}

/* v0.27 market breadth (advance / decline) */
.etm .etm-btable { width: 100%; font-size: 0.86rem; }
.etm .etm-btable th { cursor: pointer; white-space: nowrap; user-select: none; }
.etm .etm-btable th.is-sorted { color: #2563eb; }
.etm .etm-btable tbody tr { cursor: pointer; }
.etm .etm-btable tbody tr:hover { background: #f8fafc; }
.etm .etm-btable tbody tr.is-sel { background: #eff6ff; }
.etm .etm-btable td { text-align: center; vertical-align: middle; }
.etm .etm-btable td.etm-bname { text-align: left; }
.etm .etm-bname b { display: block; font-weight: 600; }
.etm .etm-bname small { color: #64748b; font-size: 0.74rem; }
.etm .etm-bad { display: grid; grid-template-columns: 34px minmax(70px, 1fr) 34px; align-items: center; min-width: 150px; }
.etm .etm-bad span { font-weight: 600; font-variant-numeric: tabular-nums; }
.etm .etm-bad i { display: block; height: 10px; border-radius: 5px; background: #ef4444; margin: 0 6px; overflow: hidden; }
.etm .etm-bad em { display: block; height: 100%; background: #22c55e; }
.etm .etm-bpct { display: inline-block; min-width: 46px; padding: 2px 6px; border-radius: 6px; font-weight: 600; font-variant-numeric: tabular-nums; }
.etm .etm-bmx { border-collapse: separate; border-spacing: 2px; font-size: 0.76rem; width: 100%; }
.etm .etm-bmx th { font-weight: 500; color: #64748b; white-space: nowrap; padding: 2px 4px; text-align: center; }
.etm .etm-bmx tr th:first-child { text-align: left; color: #111827; font-weight: 600; position: sticky; left: 0; background: #fff; z-index: 1; }
.etm .etm-bmx tr.is-sel th:first-child { color: #2563eb; }
.etm .etm-bmx td { text-align: center; padding: 5px 2px; border-radius: 4px; min-width: 30px; cursor: pointer; font-variant-numeric: tabular-nums; }
.etm .etm-bmx td:hover { outline: 2px solid #111827; }
.etm .etm-bcols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.etm .etm-bcols h3 { margin: 0 0 8px; }
.etm .etm-bst { display: grid; grid-template-columns: minmax(120px, 190px) minmax(0, 1fr) 64px 72px; align-items: center; gap: 8px; margin: 5px 0; font-size: 0.84rem; }
.etm .etm-bst i { height: 10px; border-radius: 5px; background: #f1f5f9; overflow: hidden; }
.etm .etm-bst em { display: block; height: 100%; border-radius: 5px; }
.etm .etm-bst b { text-align: right; font-variant-numeric: tabular-nums; }
.etm .etm-bst small { color: #64748b; text-align: right; font-variant-numeric: tabular-nums; }
.etm .etm-bsym { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.etm .etm-bpill { display: inline-block; font-style: normal; font-size: 0.66rem; font-weight: 600; margin-left: 5px; padding: 1px 4px; border-radius: 4px; background: #e2e8f0; color: #334155; }
.etm .etm-bpill.is-up { background: #dcfce7; color: #166534; }
.etm .etm-bpill.is-down { background: #fee2e2; color: #991b1b; }
.etm .etm-bpill.is-mute { background: #f1f5f9; color: #94a3b8; }
.etm .etm-gt-tile b .is-up { color: #16a34a; } .etm .etm-gt-tile b .is-down { color: #dc2626; }
.etm.etm-brd .etm-panel-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.etm .etm-bt-table { width: 100%; font-size: 0.84rem; margin: 6px 0 10px; }
.etm .etm-bt-table td, .etm .etm-bt-table th { text-align: center; padding: 5px 6px; }
.etm .etm-bt-table td:first-child, .etm .etm-bt-table th:first-child { text-align: left; }
@media (max-width: 720px) {
	.etm .etm-bcols { grid-template-columns: 1fr; }
	.etm .etm-bst { grid-template-columns: minmax(96px, 130px) minmax(0, 1fr) 58px; }
	.etm .etm-bst small { display: none; }
}
.etm .etm-gt-tile b span { display: inline; font-size: inherit; margin: 0; }
.etm-hub2 .is-analyse { --acc: #0f766e; --acc-rgb: 45, 212, 191; --base: #04201d; --base2: #083a34; --ink: #0f766e; }

/* v0.27.3 PE - CE: expiry tick-boxes */
.etm .etm-pece-exps { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin: 4px 0 10px; font-size: 0.84rem; }
.etm .etm-pece-exps > span { color: #64748b; margin-right: 4px; }
.etm .etm-pece-exps label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; padding: 3px 8px; border: 1px solid #e2e8f0; border-radius: 6px; background: #fff; }
.etm.etm-capturing .etm-pece-exps { display: none !important; }

/* ================================================================ Market Pulse v0.1.0 */
.etm-hub2 .is-movers { --acc: #be185d; --acc-rgb: 244, 114, 182; --base: #210818; --base2: #3a0f2b; --ink: #be185d; }
.etm-hub2 .is-market { --acc: #0369a1; --acc-rgb: 56, 189, 248; --base: #06182b; --base2: #0a2540; --ink: #0369a1; }
.etm-hub2 .is-indices { --acc: #6d28d9; --acc-rgb: 167, 139, 250; --base: #130c2a; --base2: #22154a; --ink: #6d28d9; }
.etm-hub2 .etm-hub-glance { margin: 0 0 16px; }
.etm-hub2 .etm-hub-glance .etm-gt-tile p a { color: var(--etm-blue); text-decoration: none; font-weight: 600; white-space: nowrap; }
.etm .etm-seg a { flex: 1 1 auto; margin: 0; padding: 7px 13px; border-left: 1px solid var(--etm-line); background: #fff; color: var(--etm-ink) !important; font-size: 0.86rem; font-weight: 550; text-decoration: none !important; white-space: nowrap; line-height: 1.4; }
.etm .etm-seg a:first-child { border-left: 0; }
.etm .etm-seg a.is-on { background: var(--etm-blue-soft); color: var(--etm-blue) !important; box-shadow: inset 0 0 0 1px var(--etm-blue); }
.etm .etm-seg-sm a { padding: 4px 12px; font-size: 0.82rem; }
.etm .etm-panel-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.etm .etm-datepick { display: flex; align-items: stretch; gap: 4px; }
.etm .etm-datepick .etm-date { min-width: 150px !important; width: 160px; }
.etm .etm-dstep { appearance: none; border: 1px solid var(--etm-line); background: #fff; border-radius: 8px; padding: 0 11px; font: inherit; font-size: 1.05rem; font-weight: 600; color: var(--etm-ink); cursor: pointer; }
.etm .etm-dstep:hover { background: var(--etm-blue-soft); }
.etm .etm-dlatest { font-size: 0.82rem; }
.etm .etm-btn { appearance: none; border: 1px solid var(--etm-blue); background: var(--etm-blue); color: #fff; border-radius: 8px; padding: 6px 12px; font: inherit; font-size: 0.84rem; font-weight: 600; cursor: pointer; }
.etm .etm-more { text-align: center; margin: 10px 0 0; }
.etm .etm-mtable td, .etm .etm-mtable th { white-space: nowrap; }
.etm .etm-mtable th.is-sortable { cursor: pointer; user-select: none; }
.etm .etm-mtable th.is-sorted { color: var(--etm-blue); }
.etm .etm-table td.is-up, .etm .etm-table .is-up { color: #16a34a; }
.etm .etm-table td.is-down, .etm .etm-table .is-down { color: #dc2626; }
.etm .etm-strong { font-weight: 700; }
.etm .etm-stk { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 5px; max-width: 280px; white-space: normal; }
.etm .etm-stk b { font-weight: 650; }
.etm .etm-stk small { flex-basis: 100%; color: #64748b; font-size: 0.74rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.etm .etm-tag { display: inline-block; padding: 0 5px; border-radius: 4px; font-size: 0.66rem; font-weight: 700; line-height: 1.5; background: #e2e8f0; color: #334155; letter-spacing: 0.02em; }
.etm .etm-tag.is-up { background: #dcfce7; color: #15803d !important; }
.etm .etm-tag.is-down { background: #fee2e2; color: #b91c1c !important; }
.etm .etm-tag.is-mute { background: #f1f5f9; color: #64748b; }
.etm .etm-vx { display: inline-block; min-width: 42px; padding: 1px 6px; border-radius: 6px; font-weight: 650; font-variant-numeric: tabular-nums; background: #f1f5f9; }
.etm .etm-vx.is-warm { background: #ffedd5; color: #9a3412; }
.etm .etm-vx.is-hot { background: #ea580c; color: #fff; }
.etm .etm-spcell { padding-top: 2px !important; padding-bottom: 2px !important; }
.etm .etm-spark { display: block; }
.etm .etm-hpill { display: inline-block; min-width: 62px; padding: 2px 6px; border-radius: 6px; font-weight: 650; font-variant-numeric: tabular-nums; text-align: center; }
.etm .etm-hcell { text-align: center; font-weight: 600; }
.etm .etm-mute { color: #94a3b8; font-size: 0.74rem; }
.etm .etm-svgbars { width: 100%; height: auto; display: block; }
.etm .etm-rot { width: 100%; height: auto; display: block; max-height: 460px; border-radius: 8px; }
.etm .etm-compact td, .etm .etm-compact th { padding: 5px 8px; font-size: 0.84rem; }
.etm .etm-tall { max-height: 560px; overflow-y: auto; }
.etm .etm-strip td { cursor: default; font-size: 0.72rem; }
.etm .etm-table tr.is-sel td { background: #eff6ff; }
.etm .etm-chartcard .etm-chart { height: 520px; }
.etm .etm-vc-chart { height: 520px; }
.etm .etm-legend a { color: var(--etm-blue); }
.etm .etm-loading { color: #64748b; }
.etm.etm-capturing .etm-panel-tools, .etm.etm-capturing .etm-more { display: none !important; }
@media (max-width: 720px) {
	.etm .etm-chartcard .etm-chart, .etm .etm-vc-chart { height: 420px; }
	.etm .etm-datepick .etm-date { width: 138px; min-width: 0 !important; }
	.etm .etm-bar .etm-seg { flex-wrap: wrap; }
	.etm .etm-panel-tools { width: 100%; }
	.etm .etm-stk small { max-width: 160px; }
}
.etm .etm-table th.etm-tl, .etm .etm-table td.etm-tl { text-align: left; }
.etm .etm-mtable .etm-stk { display: flex; justify-content: flex-start; }
