/*
 * Signaux courts : page membres et page des six stratégies
 * (includes/signals.php, blocks/signals/view.js). Palette du site : bleus
 * Optencis, vert #16C784 et rouge #F04452 (comme la fenêtre de sortie).
 * Propriétés logiques (inline-start…) : l'arabe se lit de droite à gauche.
 */
.opx-sig {
	--opx-blue: var(--wp--preset--color--blue, #0d36d0);
	--opx-navy: #082a6e;
	--opx-ink: var(--wp--preset--color--ink, #01182a);
	--opx-muted: var(--wp--preset--color--ink-muted, #4f5b66);
	--opx-line: var(--wp--preset--color--platinum, #e4e4e6);
	--opx-cyan: var(--wp--preset--color--cyan, #1fcdff);
	--opx-up: #16c784;
	--opx-down: #f04452;
	--opx-gold: var(--wp--preset--color--market-gold, #ffb800);
	--opx-soft: #f4f6fb;
	position: relative;
	box-sizing: border-box;
	max-width: 920px;
	margin: 0 auto;
	padding: 2.5rem 16px 4rem;
	color: var(--opx-ink);
}

.opx-sig *,
.opx-sig *::before,
.opx-sig *::after {
	box-sizing: inherit;
}

.opx-sig.has-dock {
	padding-bottom: 7rem;
}

.opx-sig__head h1 {
	margin: 0.25rem 0 0.75rem;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	letter-spacing: -0.01em;
}

.opx-sig__head .opx-eyebrow {
	color: var(--opx-blue);
	margin: 0;
}

.opx-sig__lead {
	font-size: 1.0625rem;
	color: var(--opx-muted);
	margin: 0 0 1.25rem;
}

.opx-sig h2 {
	font-size: 1.25rem;
	margin: 2.25rem 0 0.75rem;
	letter-spacing: -0.01em;
}

.opx-sig__risk {
	padding: 0.75rem 1rem;
	border-inline-start: 4px solid var(--opx-gold);
	background: #fffaeb;
	border-radius: 10px;
	font-size: 0.875rem;
	color: var(--opx-ink);
}

.opx-sig__note,
.opx-sig__empty {
	color: var(--opx-muted);
	font-size: 0.9375rem;
}

.opx-sig__points {
	padding-inline-start: 1.2rem;
}

.opx-sig__points li + li {
	margin-top: 0.35rem;
}

.opx-sig__msg {
	padding: 0.6rem 0.9rem;
	border-radius: 10px;
	background: #eef2ff;
}

.opx-sig__msg.is-error {
	background: #fdecee;
}

.opx-sig button {
	font-family: inherit;
	line-height: 1.2;
	cursor: pointer;
}

.opx-sig svg {
	flex: none;
}

/* ─── Barre de contrôle collante ─────────────────────────────────────── */

.opx-sig__bar {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 1rem;
	margin: 1rem 0 1.25rem;
	padding: 0.6rem 0.75rem;
	border: 1px solid rgba(13, 54, 208, 0.12);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(10px);
	box-shadow: 0 8px 24px rgba(1, 24, 42, 0.06);
}

.admin-bar .opx-sig__bar {
	top: 32px;
}

.opx-sig__status {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
}

.opx-sig__dot {
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 50%;
	background: var(--opx-muted);
}

.opx-sig__status[data-sante='ok'] .opx-sig__dot {
	background: var(--opx-up);
	box-shadow: 0 0 0 0 rgba(22, 199, 132, 0.5);
	animation: opx-sig-pulse 2s infinite;
}

.opx-sig__status[data-sante='degrade'] .opx-sig__dot {
	background: #ff9f1a;
}

.opx-sig__status[data-sante='arret'] .opx-sig__dot {
	background: var(--opx-down);
}

@keyframes opx-sig-pulse {
	70% {
		box-shadow: 0 0 0 8px rgba(22, 199, 132, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(22, 199, 132, 0);
	}
}

.opx-sig__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.opx-sig__seg {
	display: inline-flex;
	padding: 3px;
	border-radius: 999px;
	background: var(--opx-soft);
}

.opx-sig__seg button {
	padding: 0.35rem 0.9rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--opx-muted);
	font-size: 0.875rem;
	font-weight: 600;
}

.opx-sig__seg button[aria-pressed='true'] {
	background: var(--opx-blue);
	color: #fff;
	box-shadow: 0 2px 8px rgba(13, 54, 208, 0.3);
}

.opx-sig__seg button.is-off {
	opacity: 0.45;
	cursor: not-allowed;
}

.opx-sig__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0.75rem 0.35rem 0.4rem;
	border: 1px solid var(--opx-line);
	border-radius: 999px;
	background: #fff;
	color: var(--opx-ink);
	font-size: 0.875rem;
	font-weight: 600;
}

.opx-sig__knob {
	position: relative;
	width: 2.1rem;
	height: 1.2rem;
	border-radius: 999px;
	background: var(--opx-line);
	transition: background 0.2s;
}

.opx-sig__knob::after {
	content: '';
	position: absolute;
	top: 2px;
	inset-inline-start: 2px;
	width: calc(1.2rem - 4px);
	height: calc(1.2rem - 4px);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(1, 24, 42, 0.3);
	transition: inset-inline-start 0.2s;
}

.opx-sig__toggle[aria-checked='true'] .opx-sig__knob {
	background: var(--opx-up);
}

.opx-sig__toggle[aria-checked='true'] .opx-sig__knob::after {
	inset-inline-start: calc(100% - 1.2rem + 2px);
}

.opx-sig__toggle.is-off {
	opacity: 0.5;
}

.opx-sig__bell {
	display: inline-grid;
	place-items: center;
	width: 2.2rem;
	height: 2.2rem;
	border: 1px solid var(--opx-line);
	border-radius: 50%;
	background: #fff;
	color: var(--opx-muted);
}

.opx-sig__bell[aria-pressed='true'] {
	border-color: var(--opx-blue);
	background: var(--opx-blue);
	color: #fff;
}

.opx-sig__toast {
	flex-basis: 100%;
	margin: 0;
	font-size: 0.8125rem;
	color: var(--opx-blue);
}

.opx-sig__toast:empty {
	display: none;
}

/* ─── Signal vedette ─────────────────────────────────────────────────── */

.opx-sig__card {
	--opx-dir: var(--opx-up);
	--opx-tint: rgba(22, 199, 132, 0.09);
	position: relative;
	padding: 1.25rem 1.25rem 1.4rem;
	border: 1px solid color-mix(in srgb, var(--opx-dir) 35%, transparent);
	border-radius: 22px;
	background: linear-gradient(160deg, var(--opx-tint), #fff 55%);
	box-shadow: 0 14px 40px rgba(1, 24, 42, 0.08);
}

.opx-sig__card.is-down {
	--opx-dir: var(--opx-down);
	--opx-tint: rgba(240, 68, 82, 0.09);
}

.opx-sig__card.is-empty {
	border-color: var(--opx-line);
	background: var(--opx-soft);
	box-shadow: none;
	text-align: center;
}

.opx-sig__kicker {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--opx-blue);
}

.opx-sig__card-grid {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.25rem;
	align-items: center;
}

.opx-sig__ring {
	position: relative;
	width: 150px;
	height: 150px;
	color: var(--opx-up);
}

.opx-sig__ring.is-down {
	color: var(--opx-down);
}

.opx-sig__ring svg {
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.opx-sig__ring circle {
	fill: none;
	stroke-width: 9;
}

.opx-sig__ring-bg {
	stroke: color-mix(in srgb, currentColor 14%, transparent);
}

.opx-sig__ring-fg {
	stroke: currentColor;
	stroke-linecap: round;
	transition: stroke-dashoffset 1s linear;
}

.opx-sig__ring-t {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	text-align: center;
}

.opx-sig__ring-t b {
	font-size: 2rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--opx-ink);
	line-height: 1;
}

.opx-sig__ring-t small {
	margin-top: 0.3rem;
	font-size: 0.75rem;
	color: var(--opx-muted);
}

.opx-sig__card-main {
	min-width: 0;
}

.opx-sig__card-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
}

.opx-sig__dir {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.3rem 0.75rem 0.3rem 0.55rem;
	border-radius: 999px;
	background: var(--opx-up);
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 700;
}

.opx-sig__dir.is-down {
	background: var(--opx-down);
}

h3.opx-sig__name {
	margin: 0;
	font-size: clamp(1.25rem, 3vw, 1.6rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	overflow-wrap: anywhere;
}

.opx-sig__copy {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.65rem;
	border: 1px solid var(--opx-line);
	border-radius: 999px;
	background: #fff;
	color: var(--opx-blue);
	font-size: 0.8125rem;
	font-weight: 600;
}

.opx-sig__copy.is-done {
	border-color: var(--opx-up);
	color: #0b7f55;
}

.opx-sig__card-top .opx-sig__copy {
	margin-inline-start: auto;
}

/* Mini-courbe, grille très légère derrière */
.opx-sig__spark {
	margin: 0.8rem 0 0;
	color: var(--opx-up);
}

.opx-sig__spark.is-down {
	color: var(--opx-down);
}

.opx-sig__spark svg {
	display: block;
	width: 100%;
	height: 84px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.6);
}

.opx-sig__grid line {
	stroke: var(--opx-ink);
	stroke-opacity: 0.07;
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
}

.opx-sig__spark figcaption {
	margin-top: 0.2rem;
	font-size: 0.6875rem;
	color: var(--opx-muted);
	text-align: end;
}

.opx-sig__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0.7rem 0 0;
}

.opx-sig__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.25rem 0.65rem;
	border: 0;
	border-radius: 999px;
	background: #eef2ff;
	color: var(--opx-navy);
	font-size: 0.8125rem;
	font-weight: 600;
}

.opx-sig__chip--strat {
	background: var(--opx-blue);
	color: #fff;
}

.opx-sig__chip--strat:hover,
.opx-sig__chip--strat[aria-expanded='true'] {
	background: var(--opx-navy);
}

/* Gros bouton d'action */
.opx-sig__act {
	margin-top: 1.1rem;
}

.opx-sig__go {
	display: block;
	width: 100%;
	padding: 1rem 1.25rem;
	border: 0;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--opx-blue), var(--opx-navy));
	color: #fff;
	font-size: 1.125rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 10px 24px rgba(13, 54, 208, 0.28);
	transition: transform 0.15s, box-shadow 0.15s;
}

.opx-sig__go:hover {
	transform: translateY(-1px);
	box-shadow: 0 14px 30px rgba(13, 54, 208, 0.34);
	color: #fff;
}

.opx-sig__go.is-real {
	background: linear-gradient(135deg, #0b7f55, var(--opx-up));
	box-shadow: 0 10px 24px rgba(22, 199, 132, 0.3);
}

.opx-sig__go.is-link {
	background: #fff;
	color: var(--opx-blue);
	border: 2px solid var(--opx-blue);
	box-shadow: none;
}

.opx-sig__go:disabled {
	opacity: 0.6;
}

.opx-sig__sent,
.opx-sig__mine {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0.9rem 1rem;
	border-radius: 14px;
	background: rgba(22, 199, 132, 0.12);
	color: #0b7f55;
	font-weight: 700;
}

.opx-sig__mine {
	background: #eef2ff;
	color: var(--opx-navy);
}

.opx-sig__err {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.8125rem;
	color: var(--opx-down);
}

.opx-sig__err:empty {
	display: none;
}

/* Résultat retourné à l'expiration */
.opx-sig__result {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	margin-bottom: 0.75rem;
	padding: 1rem 1.25rem;
	border-radius: 18px;
	background: var(--opx-soft);
	transform-origin: center;
}

.opx-sig__result b {
	font-size: 1.5rem;
	font-variant-numeric: tabular-nums;
}

.opx-sig__result-k {
	color: var(--opx-muted);
	font-size: 0.875rem;
}

.opx-sig__result.is-win {
	background: rgba(22, 199, 132, 0.14);
}

.opx-sig__result.is-win b {
	color: #0b7f55;
}

.opx-sig__result.is-loss {
	background: rgba(240, 68, 82, 0.12);
}

.opx-sig__result.is-loss b {
	color: #c22a37;
}

.opx-sig__result.is-flip {
	animation: opx-sig-flip 0.7s ease-out both;
}

@keyframes opx-sig-flip {
	0% {
		transform: perspective(700px) rotateX(90deg);
		opacity: 0;
	}
	60% {
		transform: perspective(700px) rotateX(-12deg);
		opacity: 1;
	}
	100% {
		transform: perspective(700px) rotateX(0);
	}
}

/* ─── Files « Ensuite » et « Plus tôt » ──────────────────────────────── */

.opx-sig__row {
	display: grid;
	grid-template-columns: 3.6rem auto 1fr auto;
	align-items: center;
	gap: 0.65rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--opx-line);
	border-radius: 14px;
	background: #fff;
}

.opx-sig__row + .opx-sig__row {
	margin-top: 0.5rem;
}

.opx-sig__row.is-live,
.opx-sig__row.is-done {
	background: var(--opx-soft);
}

.opx-sig__left {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
}

.opx-sig__arrow {
	display: inline-grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: rgba(22, 199, 132, 0.14);
	color: #0b7f55;
	vertical-align: middle;
}

.opx-sig__arrow.is-down {
	background: rgba(240, 68, 82, 0.13);
	color: #c22a37;
}

.opx-sig__row-main {
	min-width: 0;
	display: grid;
}

.opx-sig__row-main b {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.opx-sig__row-main small {
	color: var(--opx-muted);
}

.opx-sig__link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--opx-blue);
	font-size: inherit;
	text-decoration: underline;
	text-decoration-style: dotted;
	text-underline-offset: 3px;
}

.opx-sig__row-act {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.4rem;
}

.opx-sig__row .opx-sig__copy {
	padding: 0.4rem;
}

.opx-sig__go-s {
	padding: 0.45rem 0.9rem;
	border: 0;
	border-radius: 999px;
	background: var(--opx-blue);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 700;
}

.opx-sig__row .opx-sig__sent,
.opx-sig__row .opx-sig__mine {
	padding: 0.3rem 0.6rem;
	border-radius: 999px;
	font-size: 0.8125rem;
}

.opx-sig__out {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--opx-muted);
}

.opx-sig__out.is-gagne {
	color: #0b7f55;
}

.opx-sig__out.is-perdu {
	color: #c22a37;
}

.opx-sig__more {
	display: block;
	width: 100%;
	margin-top: 0.5rem;
	padding: 0.6rem;
	border: 1px dashed rgba(13, 54, 208, 0.35);
	border-radius: 14px;
	background: transparent;
	color: var(--opx-blue);
	font-size: 0.875rem;
	font-weight: 600;
}

/* ─── Bulle d'explication ────────────────────────────────────────────── */

.opx-sig__pop {
	position: absolute;
	z-index: 30;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(13, 54, 208, 0.15);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 40px rgba(1, 24, 42, 0.18);
	font-size: 0.875rem;
	animation: opx-sig-pop 0.15s ease-out;
}

.opx-sig__pop p {
	margin: 0 0 0.5rem;
}

.opx-sig__pop-h {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--opx-blue);
	font-size: 1rem;
}

.opx-sig__pop-m {
	color: var(--opx-muted);
	font-size: 0.8125rem;
}

@keyframes opx-sig-pop {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
}

/* ─── Journal : trois compteurs, détail repliable ─────────────────────── */

.opx-sig__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.6rem;
}

.opx-sig__stats > div {
	padding: 0.9rem 1rem;
	border-radius: 14px;
	background: var(--opx-soft);
}

.opx-sig__stats b {
	display: block;
	font-size: 1.5rem;
	font-variant-numeric: tabular-nums;
}

.opx-sig__stats span {
	color: var(--opx-muted);
	font-size: 0.8125rem;
}

.opx-sig__stats .is-win {
	color: #0b7f55;
	font-size: inherit;
}

.opx-sig__stats .is-loss {
	color: #c22a37;
	font-size: inherit;
}

.opx-sig__details {
	margin-top: 0.75rem;
}

.opx-sig__details summary {
	cursor: pointer;
	color: var(--opx-blue);
	font-weight: 600;
}

.opx-sig__table-wrap {
	overflow-x: auto;
}

.opx-sig__table {
	width: 100%;
	margin-top: 0.5rem;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.opx-sig__table th {
	text-align: start;
	font-size: 0.75rem;
	color: var(--opx-muted);
	font-weight: 600;
}

.opx-sig__table td,
.opx-sig__table th {
	padding: 0.5rem 0.4rem;
	border-bottom: 1px solid var(--opx-line);
	vertical-align: middle;
}

.opx-sig__table td small {
	display: block;
	color: var(--opx-muted);
}

.opx-sig__table .opx-sig__arrow {
	width: 1.4rem;
	height: 1.4rem;
}

.opx-sig__table .is-win {
	color: #0b7f55;
	font-weight: 600;
}

.opx-sig__table .is-loss {
	color: #c22a37;
	font-weight: 600;
}

/* ─── Compte et réglages ─────────────────────────────────────────────── */

.opx-sig__consent label,
.opx-sig__check {
	display: block;
	font-weight: 500;
}

.opx-sig__consent ul {
	color: var(--opx-muted);
	font-size: 0.9375rem;
}

.opx-sig__stop {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--opx-line);
	border-radius: 14px;
}

.opx-sig__stop p {
	margin: 0;
	flex: 1 1 18rem;
}

.opx-sig__stop .wp-element-button {
	background: var(--opx-down);
}

.opx-sig__stop.is-stopped {
	border-color: var(--opx-down);
	background: #fdecee;
}

.opx-sig__stop.is-stopped .wp-element-button {
	background: var(--opx-blue);
}

.opx-sig__settings fieldset {
	margin: 1rem 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--opx-line);
	border-radius: 14px;
}

.opx-sig__settings legend {
	font-weight: 600;
	padding: 0 0.3rem;
}

.opx-sig__field {
	display: grid;
	gap: 0.25rem;
	margin: 0.75rem 0;
	max-width: 22rem;
}

.opx-sig__field input {
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--opx-line);
	border-radius: 10px;
	font: inherit;
}

.opx-sig__field small {
	color: var(--opx-muted);
}

.opx-sig__unlink {
	margin-top: 1.5rem;
	font-size: 0.875rem;
	color: var(--opx-muted);
}

/* ─── Téléphone : bouton collé en bas ────────────────────────────────── */

.opx-sig__dock {
	display: none;
}

@media (max-width: 700px) {
	.opx-sig {
		padding-top: 1.5rem;
	}

	.opx-sig__bar {
		border-radius: 0 0 16px 16px;
		margin-inline: -16px;
		border-inline: 0;
		border-top: 0;
	}

	.opx-sig__controls {
		width: 100%;
		justify-content: space-between;
	}

	.opx-sig__card {
		padding: 1rem;
	}

	.opx-sig__card-grid {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 0.9rem;
	}

	.opx-sig__card-main {
		width: 100%;
	}

	.opx-sig__ring {
		width: 132px;
		height: 132px;
	}

	.opx-sig__card-top .opx-sig__copy span {
		display: none;
	}

	.opx-sig__row {
		grid-template-columns: 3.2rem auto 1fr;
	}

	.opx-sig__row-act {
		grid-column: 1 / -1;
		justify-content: flex-start;
	}

	.opx-sig__stats b {
		font-size: 1.2rem;
	}

	.opx-sig__dock:not([hidden]) {
		display: block;
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: 40;
		padding: 0.75rem 16px calc(0.75rem + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, 0.95);
		backdrop-filter: blur(10px);
		box-shadow: 0 -8px 24px rgba(1, 24, 42, 0.12);
	}

	/* Le bouton du bas remplace celui de la carte. */
	.opx-sig.has-dock .opx-sig__card .opx-sig__go {
		display: none;
	}
}

/* ─── Bouton « Mon trading » et panneau ──────────────────────────────── */

.opx-sig__open {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.9rem 0.45rem 0.7rem;
	border: 0;
	border-radius: 999px;
	background: var(--opx-blue);
	color: #fff;
	font-size: 0.875rem;
	box-shadow: 0 4px 12px rgba(13, 54, 208, 0.25);
}

.opx-sig__open small {
	padding-inline-start: 0.5rem;
	border-inline-start: 1px solid rgba(255, 255, 255, 0.35);
	font-size: 0.8125rem;
	opacity: 0.9;
}

.opx-sig__open small:empty {
	display: none;
}

.opx-sig__sum {
	margin: 0 0 0.3rem;
	font-weight: 600;
}

.opx-sig__rules {
	margin: 0 0 0.75rem;
	color: var(--opx-muted);
	font-size: 0.875rem;
}

.opx-sig__panel {
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	padding: 0;
	border: 0;
	border-radius: 22px;
	box-shadow: 0 30px 80px rgba(1, 24, 42, 0.35);
	color: var(--opx-ink);
}

.opx-sig__panel::backdrop {
	background: rgba(1, 24, 42, 0.45);
	backdrop-filter: blur(3px);
}

.opx-sig__panel-in {
	padding: 0 1.25rem 1.25rem;
}

.opx-sig__panel-h {
	position: sticky;
	top: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 -1.25rem;
	padding: 1rem 1.25rem 0.75rem;
	background: #fff;
	border-bottom: 1px solid var(--opx-line);
}

.opx-sig__panel-h h2 {
	margin: 0;
	font-size: 1.25rem;
}

.opx-sig__x {
	width: 2.2rem;
	height: 2.2rem;
	border: 0;
	border-radius: 50%;
	background: var(--opx-soft);
	font-size: 1.4rem;
	line-height: 1;
}

/* Focus donné à l'ouverture : pas d'anneau à la souris, gardé au clavier. */
.opx-sig__panel :focus:not(:focus-visible) {
	outline: none;
}

.opx-sig__panel section {
	padding: 1rem 0;
	border-bottom: 1px solid var(--opx-line);
}

.opx-sig__panel h3 {
	margin: 0 0 0.65rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--opx-blue);
}

.opx-sig__panel .opx-sig__seg {
	display: flex;
}

.opx-sig__panel .opx-sig__seg button {
	flex: 1;
	padding: 0.6rem;
	font-size: 0.9375rem;
}

.opx-sig__consent-box {
	margin-top: 0.75rem;
	padding: 0.75rem;
	border-radius: 12px;
	background: #fff6e0;
	font-size: 0.875rem;
}

.opx-sig__amount {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.opx-sig__amount input {
	width: 7rem;
	padding: 0.6rem 0.8rem;
	border: 1px solid var(--opx-line);
	border-radius: 12px;
	font: inherit;
	font-size: 1.5rem;
	font-weight: 700;
}

.opx-sig__amount span {
	color: var(--opx-muted);
	font-weight: 600;
}

.opx-sig__picks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0.5rem 0 0;
}

.opx-sig__pick {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--opx-line);
	border-radius: 999px;
	background: #fff;
	color: var(--opx-ink);
	font-size: 0.8125rem;
	font-weight: 600;
}

.opx-sig__pick[aria-pressed='true'] {
	border-color: var(--opx-blue);
	background: #eef2ff;
	color: var(--opx-blue);
}

.opx-sig__lbl {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 1rem 0 0;
	font-size: 0.875rem;
	font-weight: 600;
}

.opx-sig__rules-box.is-off {
	opacity: 0.45;
}

.opx-sig__help {
	display: block;
	margin-top: 0.4rem;
	color: var(--opx-muted);
}

.opx-sig__summary-box {
	margin-top: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 14px;
	background: #f7f9ff;
}

.opx-sig__summary-box .opx-sig__rules {
	margin: 0;
}

.opx-sig__panel-f {
	position: sticky;
	bottom: 0;
	display: flex;
	gap: 0.6rem;
	margin: 0 -1.25rem -1.25rem;
	padding: 0.9rem 1.25rem;
	background: #fff;
	border-top: 1px solid var(--opx-line);
}

.opx-sig__panel-f .opx-sig__go {
	flex: 2;
	padding: 0.8rem;
	font-size: 1rem;
}

.opx-sig__ghost {
	flex: 1;
	border: 1px solid var(--opx-line);
	border-radius: 14px;
	background: #fff;
	color: var(--opx-ink);
	font-weight: 600;
}

@media (max-width: 700px) {
	.opx-sig__open b {
		display: none;
	}

	.opx-sig__panel {
		width: 100vw;
		max-width: 100vw;
		max-height: 92vh;
		margin: auto 0 0;
		border-radius: 22px 22px 0 0;
	}
}

/* ─── Mouvement réduit ───────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
	.opx-sig *,
	.opx-sig *::before,
	.opx-sig *::after {
		animation: none !important;
		transition: none !important;
	}
}

/* ─── Page des stratégies ────────────────────────────────────────────── */

.opx-sig__strategy {
	margin-top: 2rem;
	padding-top: 0.25rem;
	scroll-margin-top: 5rem;
}

.opx-sig__strategy h2 {
	margin-top: 0;
}

.opx-sig__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.opx-sig__meta span {
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: #eef2ff;
	color: var(--opx-blue);
	font-size: 0.8125rem;
	font-weight: 500;
}

/* ─── Onglets : signaux de 1 à 60 min, ultra-courts de 5 à 15 s ─────── */

.opx-sig__tabs {
	display: flex;
	width: 100%;
	margin: 1.25rem 0 0.5rem;
}

.opx-sig__tabs[hidden] {
	display: none;
}

.opx-sig__tabs button {
	flex: 1 1 0;
	padding: 0.6rem 0.75rem;
	white-space: nowrap;
	cursor: pointer;
}

@media (max-width: 480px) {
	.opx-sig__tabs button {
		padding: 0.55rem 0.4rem;
		font-size: 0.8125rem;
	}
}

.opx-sig__tabs button[aria-selected='true'] {
	background: var(--opx-blue);
	color: #fff;
	box-shadow: 0 2px 8px rgba(13, 54, 208, 0.3);
}

.opx-sig.is-ultra .opx-sig__hero,
.opx-sig.is-ultra .opx-sig__next,
.opx-sig.is-ultra > .opx-sig__note,
.opx-sig.is-ultra > .opx-sig__trades,
.opx-sig.is-ultra > .opx-sig__recent,
.opx-sig.is-ultra .opx-sig__dock {
	display: none;
}

.opx-sig.is-ultra.has-dock {
	padding-bottom: 4rem;
}

.opx-sig__ultra {
	margin-top: 1rem;
}

.opx-sig__ultra[hidden] {
	display: none;
}

.opx-sig__ustatus {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 600;
}

.opx-sig__ustatus .opx-sig__dot {
	flex: none;
	transform: translateY(0.05rem);
}

.opx-sig__ustatus.is-live .opx-sig__dot {
	background: var(--opx-up);
	animation: opx-sig-pulse 2s infinite;
}

.opx-sig__ustatus.is-off .opx-sig__dot {
	background: #ff9f1a;
}

.opx-sig__ucard .opx-sig__name {
	margin: 0.25rem 0 0.5rem;
}

.opx-sig__ulead {
	margin: 0 0 1rem;
	color: var(--opx-muted);
}

.opx-sig__ucard .opx-sig__act {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}

.opx-sig__go.is-stop {
	background: #fff;
	color: var(--opx-down);
	border: 2px solid var(--opx-down);
	box-shadow: none;
}

.opx-sig__uline {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--opx-up);
	text-align: center;
}

.opx-sig__ultra .opx-sig__stats {
	margin-top: 1.25rem;
}

.opx-sig__ultra .opx-sig__row-act {
	flex-direction: column;
	align-items: flex-end;
	gap: 0.15rem;
}

.opx-sig__umine {
	color: var(--opx-muted);
	font-size: 0.75rem;
}

.opx-sig__out.is-live {
	color: var(--opx-blue);
}

/* ─── Barre de réglages toujours à l'écran (une par onglet) ─────────── */

.opx-sig.is-ultra > .opx-sig__ctl,
.opx-sig.is-ultra > .opx-sig__streakbox {
	display: none;
}

.opx-sig__ctl {
	margin: 1rem 0;
}

.opx-sig__ctl:empty {
	display: none;
}

.opx-sig__ctl-in {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 1rem 1.25rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--opx-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 24px rgba(1, 24, 42, 0.06);
}

.opx-sig__ctl-in.is-running {
	border-color: color-mix(in srgb, var(--opx-up) 45%, var(--opx-line));
	box-shadow: 0 8px 24px rgba(22, 199, 132, 0.12);
}

.opx-sig__ctl-cell {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.45rem;
	min-width: 0;
}

.opx-sig__ctl-cell.is-wide {
	grid-column: 1 / -1;
}

.opx-sig__ctl-cell.is-row {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
}

.opx-sig__ctl-cell .opx-sig__picks {
	margin: 0;
}

.opx-sig__ctl-k {
	color: var(--opx-muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.opx-sig__amount.is-s input {
	width: 6.5rem;
	padding: 0.4rem 0.6rem;
	font-size: 1.25rem;
}

.opx-sig__ctl-cell .opx-sig__go {
	width: 100%;
}

.opx-sig__ctl-cell > .opx-sig__link {
	align-self: center;
}

/* Packs */

.opx-sig__packs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
	width: 100%;
}

.opx-sig__pack {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.1rem;
	padding: 0.75rem 0.5rem;
	border: 2px solid var(--opx-line);
	border-radius: 16px;
	background: var(--opx-soft);
	color: var(--opx-ink);
	cursor: pointer;
	transition: border-color 0.15s, transform 0.15s;
}

.opx-sig__pack:hover {
	transform: translateY(-1px);
}

.opx-sig__pack b {
	font-size: 0.875rem;
}

.opx-sig__pack-n {
	font-size: 1.9rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--opx-blue);
}

.opx-sig__pack small {
	color: var(--opx-muted);
	font-size: 0.75rem;
}

.opx-sig__pack.is-on {
	border-color: var(--opx-blue);
	background: linear-gradient(160deg, #eef2ff, #fff);
	box-shadow: 0 6px 18px rgba(13, 54, 208, 0.18);
}

/* Fenêtre qui prévient */

.opx-sig__confirm {
	width: min(420px, calc(100vw - 32px));
	padding: 1.25rem;
	border: 0;
	border-radius: 18px;
	box-shadow: 0 30px 80px rgba(1, 24, 42, 0.35);
	color: var(--opx-ink);
}

.opx-sig__confirm::backdrop,
.opx-sig__resultbox::backdrop {
	background: rgba(1, 24, 42, 0.5);
	backdrop-filter: blur(3px);
}

.opx-sig__confirm p {
	margin: 0 0 1rem;
	font-weight: 600;
}

.opx-sig__confirm-f {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
}

.opx-sig__confirm-f .opx-sig__go {
	width: auto;
	padding: 0.6rem 1.2rem;
	font-size: 1rem;
}

/* ─── Carte de session : en direct, et résultat d'un pack ───────────── */

.opx-ss {
	--ss-ink: #eaf1ff;
	--ss-mute: #9fb3d9;
	position: relative;
	margin: 1rem 0;
	padding: 1.1rem 1.1rem 0.9rem;
	overflow: hidden;
	border-radius: 22px;
	background:
		radial-gradient(120% 90% at 85% 0%, rgba(31, 205, 255, 0.22), transparent 55%),
		linear-gradient(165deg, #04122e 0%, #082a6e 55%, #0d36d0 130%);
	color: var(--ss-ink);
	box-shadow: 0 18px 50px rgba(4, 18, 46, 0.35);
}

.opx-ss__h {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: start;
	gap: 0.75rem;
}

.opx-ss__k {
	margin: 0;
	color: var(--ss-mute);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.opx-ss__mode {
	margin: 0.2rem 0 0;
	font-size: 0.8125rem;
	color: var(--ss-ink);
}

.opx-ss__state {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.3rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.06);
	font-size: 0.8125rem;
	font-weight: 700;
	white-space: nowrap;
}

.opx-ss__state span {
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: var(--opx-up);
}

.opx-ss.is-live .opx-ss__state span {
	background: var(--opx-cyan);
	animation: opx-sig-pulse 2s infinite;
}

.opx-ss.is-lost .opx-ss__state span,
.opx-ss.is-stopped .opx-ss__state span {
	background: #ff9f1a;
}

.opx-ss__res {
	text-align: end;
}

.opx-ss__res b {
	display: block;
	font-size: clamp(1.5rem, 4.5vw, 2.25rem);
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.opx-ss__res b.is-win {
	color: #3ff0a6;
	text-shadow: 0 0 18px rgba(63, 240, 166, 0.35);
}

.opx-ss__res b.is-loss {
	color: #ff7a85;
}

.opx-ss__prog {
	height: 6px;
	margin: 0.9rem 0 0.3rem;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
}

.opx-ss__prog span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--opx-cyan), #3ff0a6);
	transition: width 0.4s;
}

.opx-ss__prog-t {
	margin: 0;
	color: var(--ss-mute);
	font-size: 0.8125rem;
}

.opx-ss__prog-t b {
	color: var(--ss-ink);
}

.opx-ss__cycles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
	gap: 0.4rem;
	margin: 0.9rem 0 0;
	padding: 0;
	list-style: none;
}

.opx-ss__cycles li {
	display: flex;
	flex-direction: column;
	padding: 0.45rem 0.6rem;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-inline-start: 3px solid var(--ss-mute);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.05);
}

.opx-ss__cycles li span {
	font-size: 0.75rem;
	font-weight: 700;
}

.opx-ss__cycles li small {
	color: var(--ss-mute);
	font-size: 0.6875rem;
}

.opx-ss__cycles li b {
	font-size: 0.9375rem;
}

.opx-ss__cycles li.is-win {
	border-inline-start-color: #3ff0a6;
}

.opx-ss__cycles li.is-win b {
	color: #3ff0a6;
}

.opx-ss__cycles li.is-loss {
	border-inline-start-color: #ff5f6d;
}

.opx-ss__cycles li.is-loss b {
	color: #ff7a85;
}

.opx-ss__cycles li.is-live {
	border-inline-start-color: var(--opx-cyan);
}

.opx-ss__wait {
	margin: 0;
	padding: 2.5rem 0;
	color: var(--ss-mute);
	text-align: center;
}

.opx-ss__f {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	margin-top: 0.6rem;
	color: var(--ss-mute);
	font-size: 0.75rem;
}

.opx-ss__f p {
	margin: 0;
}

.opx-ss__f b {
	color: var(--ss-ink);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.opx-ss__legend span {
	display: inline-block;
	width: 0.6rem;
	height: 0.6rem;
	margin: 0 0.3rem 0 0.7rem;
	border-radius: 50%;
	vertical-align: -0.05rem;
}

.opx-ss__legend span:first-child {
	margin-inline-start: 0;
}

.opx-ss__legend .is-loss {
	background: #ff5f6d;
}

.opx-ss__legend .is-win {
	background: #3ff0a6;
}

.opx-ss__act {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin: 0.9rem 0 0.2rem;
}

.opx-ss__act .opx-sig__go {
	width: auto;
	padding: 0.65rem 1.4rem;
	font-size: 1rem;
}

.opx-ss__act .opx-sig__link {
	color: var(--ss-ink);
}

.opx-sig__resultbox {
	width: min(760px, calc(100vw - 24px));
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

.opx-sig__resultbox .opx-ss {
	margin: 0;
	animation: opx-ss-in 0.35s ease-out;
}

@keyframes opx-ss-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
}

@media (max-width: 560px) {
	.opx-ss__h {
		grid-template-columns: 1fr auto;
	}

	.opx-ss__state {
		grid-row: 2;
		justify-self: start;
	}

	.opx-sig__pack-n {
		font-size: 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.opx-ss__m.is-open,
	.opx-ss__m.is-last::after,
	.opx-sig__resultbox .opx-ss {
		animation: none;
	}
}

/* ─── Essai gratuit en démo ──────────────────────────────────────────── */

.opx-sig__trial {
	margin: 0;
	padding: 0.45rem 0.75rem;
	border-radius: 10px;
	background: #eef2ff;
	color: var(--opx-blue);
	font-size: 0.8125rem;
	font-weight: 600;
}

.opx-sig__trialover {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.6rem;
	width: 100%;
	padding: 1rem;
	border: 1px solid color-mix(in srgb, var(--opx-up) 45%, var(--opx-line));
	border-radius: 16px;
	background: linear-gradient(160deg, rgba(22, 199, 132, 0.1), #fff 60%);
}

.opx-sig__trialover p {
	margin: 0;
}

.opx-sig__trialover-t {
	font-size: 1.125rem;
	font-weight: 800;
}

/* ─── Bonus du moment (couleurs du site) ─────────────────────────────── */

.opx-sig__bonus {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid var(--opx-line);
	border-radius: 20px;
	background: linear-gradient(160deg, #eef2ff, #fff 70%);
	color: var(--opx-ink);
	box-shadow: 0 10px 30px rgba(13, 54, 208, 0.08);
}

.opx-sig__bonus-k {
	margin: 0 0 0.75rem;
	color: var(--opx-blue);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.opx-sig__bonus-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0.6rem;
}

.opx-sig__bonus-c {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.85rem;
	border: 1px solid var(--opx-line);
	border-radius: 14px;
	background: #fff;
	color: var(--opx-ink);
	text-decoration: none;
	transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.opx-sig__bonus-c:hover {
	transform: translateY(-2px);
	border-color: var(--opx-blue);
	box-shadow: 0 10px 24px rgba(13, 54, 208, 0.15);
	color: var(--opx-ink);
}

.opx-sig__bonus-code {
	font-size: 0.875rem;
	letter-spacing: 0.08em;
}

.opx-sig__bonus-pct {
	font-size: 1.9rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--opx-blue);
}

.opx-sig__bonus-c small {
	color: var(--opx-muted);
	font-size: 0.75rem;
}

.opx-sig__bonus-go {
	margin-top: 0.5rem;
	padding: 0.5rem 0.6rem;
	border-radius: 10px;
	background: linear-gradient(135deg, var(--opx-blue), var(--opx-navy));
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 800;
	text-align: center;
}

.opx-sig__bonus-f {
	margin: 0.75rem 0 0;
	color: var(--opx-muted);
	font-size: 0.6875rem;
}

/* ─── Simulation ─────────────────────────────────────────────────────── */

.opx-sig__sim {
	margin: 1.25rem 0;
}

.opx-sig__simbox {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 1rem 0;
	padding: 1.1rem 1.25rem;
	border: 1px dashed color-mix(in srgb, var(--opx-blue) 45%, var(--opx-line));
	border-radius: 20px;
	background: linear-gradient(160deg, #eef2ff, #fff 65%);
}

.opx-sig__simbox .opx-sig__name {
	margin: 0;
}

.opx-sig__simbox .opx-sig__ulead,
.opx-sig__simbox .opx-sig__picks,
.opx-sig__simbox .opx-sig__note {
	margin: 0;
}

.opx-sig__simbox .opx-sig__go {
	width: 100%;
}

.opx-sig__simend {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	margin: 0.75rem 0;
	text-align: center;
}

.opx-sig__simend .opx-sig__go {
	width: auto;
	padding: 0.75rem 1.5rem;
}

/* Visuel de chaque bonus, titre de la récompense, série de trades gagnants */

.opx-sig__bonus-c {
	overflow: hidden;
}

.opx-sig__bonus-img {
	display: block;
	width: calc(100% + 1.7rem);
	max-width: none;
	height: auto;
	margin: -0.85rem -0.85rem 0.6rem;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	object-position: 82% 50%;
	transition: transform 0.3s;
}

.opx-sig__bonus-c:hover .opx-sig__bonus-img {
	transform: scale(1.04);
}

.opx-sig__bonus-h {
	margin: 0 0 0.35rem;
	color: var(--opx-ink);
	font-size: 1.375rem;
	font-weight: 800;
}

.opx-sig__streak {
	margin: 0 0 1rem;
}

.opx-sig__streak .opx-sig__bonus {
	margin-bottom: 0.4rem;
}

.opx-sig__streak-x {
	margin: 0;
	text-align: center;
}

/* Limite du jour (compte réel) et bouton d'inscription de la simulation */

.opx-sig__limit {
	margin: 0;
	color: var(--opx-muted);
	font-size: 0.8125rem;
}

.opx-sig__limit b {
	color: var(--opx-ink);
}

.opx-sig__simend .opx-sig__signup {
	min-width: 14rem;
}

/* Courbe de la carte de session : ligne lisse, dégradé doux, grille légère */

.opx-ss__plot {
	position: relative;
	height: clamp(170px, 30vw, 250px);
	margin: 0.9rem 0 0;
	border-radius: 14px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0));
}

.opx-ss__chart {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.opx-ss__grid {
	stroke: rgba(255, 255, 255, 0.07);
	vector-effect: non-scaling-stroke;
}

.opx-ss__zero {
	stroke: rgba(255, 255, 255, 0.28);
	stroke-dasharray: 3 5;
	vector-effect: non-scaling-stroke;
}

.opx-ss__sep {
	stroke: rgba(255, 255, 255, 0.1);
	vector-effect: non-scaling-stroke;
}

.opx-ss__line {
	fill: none;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
	filter: drop-shadow(0 0 5px rgba(63, 240, 166, 0.35));
}

.opx-ss__band {
	position: absolute;
	top: 4px;
	color: rgba(234, 241, 255, 0.45);
	font-size: 0.6875rem;
	font-weight: 700;
	text-align: center;
	pointer-events: none;
}

.opx-ss__m {
	position: absolute;
	width: 8px;
	height: 8px;
	margin: -4px 0 0 -4px;
	border-radius: 50%;
	box-shadow: 0 0 0 2px rgba(4, 18, 46, 0.85);
}

.opx-ss__m.is-loss {
	background: #ff6b78;
}

.opx-ss__m.is-win {
	background: #3ff0a6;
}

.opx-ss__m.is-open {
	background: #fff;
	animation: opx-ss-blink 1s infinite;
}

.opx-ss__m.is-last {
	width: 12px;
	height: 12px;
	margin: -6px 0 0 -6px;
	box-shadow: 0 0 0 3px rgba(4, 18, 46, 0.9);
}

.opx-ss__m.is-last.is-up {
	background: #3ff0a6;
}

.opx-ss__m.is-last.is-down {
	background: #ff6b78;
}

.opx-ss__m.is-last::after {
	content: '';
	position: absolute;
	inset: -7px;
	border-radius: 50%;
	background: currentColor;
	color: inherit;
	opacity: 0.25;
	animation: opx-ss-halo 2s ease-out infinite;
}

.opx-ss__m.is-last.is-up::after {
	background: #3ff0a6;
}

.opx-ss__m.is-last.is-down::after {
	background: #ff6b78;
}

@keyframes opx-ss-blink {
	50% {
		opacity: 0.3;
	}
}

@keyframes opx-ss-halo {
	from {
		transform: scale(0.6);
		opacity: 0.45;
	}
	to {
		transform: scale(1.6);
		opacity: 0;
	}
}

.opx-ss__cycles {
	margin-top: 0.75rem;
}

/* Compte réel sans capital suffisant : dépôt et bonus */

.opx-sig__nofunds {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
	width: 100%;
	padding: 1rem;
	border: 1px solid color-mix(in srgb, var(--opx-blue) 35%, var(--opx-line));
	border-radius: 16px;
	background: linear-gradient(160deg, #eef2ff, #fff 65%);
}

.opx-sig__nofunds p {
	margin: 0;
}

.opx-sig__nofunds .opx-sig__bonus {
	margin: 0.25rem 0;
	box-shadow: none;
}

.opx-sig__nofunds > .opx-sig__link {
	align-self: center;
}

/* Visiteurs : se connecter ou s'inscrire, en haut de la page (signals.php, optencis_signals_join_html()) */

.opx-sig__join {
	margin: 0.5rem 0 1.5rem;
	padding: 1.25rem;
	border-radius: 20px;
	background: linear-gradient(135deg, var(--opx-navy), var(--opx-blue));
	color: #fff;
	box-shadow: 0 14px 34px rgba(13, 54, 208, 0.22);
}

.opx-sig__join-t {
	margin: 0 0 0.9rem;
	font-weight: 700;
	font-size: 1.125rem;
}

.opx-sig__join-b {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

.opx-sig__join-in,
.opx-sig__join-up {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	min-height: 3.25rem;
	padding: 0.85rem 1.25rem;
	border-radius: 14px;
	font-weight: 800;
	font-size: 1.0625rem;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.opx-sig__join-in {
	background: #fff;
	color: var(--opx-blue);
}

.opx-sig__join-up {
	background: var(--opx-up);
	color: #fff;
	box-shadow: 0 8px 20px rgba(22, 199, 132, 0.35);
}

.opx-sig__join-in:hover,
.opx-sig__join-up:hover,
.opx-sig__join-in:focus-visible,
.opx-sig__join-up:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(1, 24, 42, 0.25);
}

.opx-sig__join-in:focus-visible,
.opx-sig__join-up:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.opx-sig__join-n {
	margin: 0.85rem 0 0;
	font-size: 0.875rem;
	opacity: 0.85;
}

@media (max-width: 480px) {
	.opx-sig__join-b {
		grid-template-columns: 1fr;
	}
}

/* Connexion par ID (lecture) : confirmation avec Pocket en haut de la page (signals.php) */
.opx-sig__account.is-top {
	margin: 1.25rem 0 1.5rem;
	padding: 1.25rem 1.25rem 0.25rem;
	border: 2px solid var(--opx-blue);
	border-radius: 20px;
	background: var(--opx-soft);
	box-shadow: 0 14px 34px rgba(13, 54, 208, 0.12);
}

.opx-sig__account.is-top h2 {
	margin: 0 0 0.5rem;
	color: var(--opx-blue);
}

.opx-sig__account.is-top .opx-po {
	margin-top: 0.75rem;
}

/* Ligne d'essai démo sous le prochain signal (view.js, trialNoteHtml()) */
.opx-sig__trial.is-under {
	margin: 0.75rem 0 1.25rem;
}

/* Gros bouton de la copie auto (1 à 60 min) sous le prochain signal (view.js, goMinutesHtml()) */
.opx-sig__gobox {
	margin: 1rem 0 1.25rem;
}

.opx-sig__gobox:empty {
	display: none;
}

.opx-sig__gobox > .opx-sig__go {
	width: 100%;
}

.opx-sig__gobox .opx-sig__trial.is-under {
	margin: 0.75rem 0 0;
}

.opx-sig.is-ultra .opx-sig__gobox {
	display: none;
}

/* Copie auto (1 à 60 min) : bouton à contour, distinct de « Lancer en démo » du signal (view.js, goMinutesHtml()) */
.opx-sig__go.is-outline {
	background: #fff;
	color: var(--opx-blue);
	border: 2px solid var(--opx-blue);
	box-shadow: none;
}

.opx-sig__go.is-outline:hover,
.opx-sig__go.is-outline:focus-visible {
	background: rgba(13, 54, 208, 0.05);
	color: var(--opx-blue);
	box-shadow: 0 8px 20px rgba(13, 54, 208, 0.15);
}

.opx-sig__go.is-outline.is-real {
	color: #0b7f55;
	border-color: var(--opx-up);
}

.opx-sig__go.is-outline.is-real:hover,
.opx-sig__go.is-outline.is-real:focus-visible {
	background: rgba(22, 199, 132, 0.06);
	color: #0b7f55;
	box-shadow: 0 8px 20px rgba(22, 199, 132, 0.18);
}

/* Lien vers la page du code du mois sous les codes (30/10/2026). */
.opx-sig__bonus-all { margin: 10px 0 0; font-size: 13px; font-weight: 700; }
.opx-sig__bonus-all a { color: inherit; }
