/* ==========================================================================
   Calculadora de Valor Esperado y Stake Kelly (ATP)
   Todos los selectores están scopeados bajo #cevk-atp.
   Ajusta las variables de :root del componente para adaptarlo al tema.
   ========================================================================== */

#cevk-atp {
	/* Colores */
	--cevk-bg: #ffffff;
	--cevk-surface: #f5f7f8;
	--cevk-surface-alt: #eef2f4;
	--cevk-border: #dbe2e6;
	--cevk-border-strong: #c3ced5;
	--cevk-text: #1b262d;
	--cevk-text-muted: #5c6b75;
	--cevk-accent: #0f766e;
	--cevk-accent-soft: #e2f1ef;
	--cevk-positive: #15803d;
	--cevk-positive-soft: #e8f5ec;
	--cevk-negative: #b91c1c;
	--cevk-negative-soft: #fbeaea;
	--cevk-warning: #9a5b06;
	--cevk-warning-soft: #fdf3e3;
	--cevk-focus: #0f766e;

	/* Tipografía */
	--cevk-font: inherit;
	--cevk-size-base: 1rem;
	--cevk-size-small: 0.875rem;
	--cevk-size-tiny: 0.8125rem;
	--cevk-size-title: 1.375rem;
	--cevk-size-stat: 1.5rem;
	--cevk-size-stat-big: 2.125rem;
	--cevk-weight-bold: 700;
	--cevk-line: 1.6;

	/* Espaciado y formas */
	--cevk-gap: 16px;
	--cevk-gap-sm: 10px;
	--cevk-pad: 20px;
	--cevk-radius: 10px;
	--cevk-radius-sm: 6px;

	box-sizing: border-box;
	margin: 32px 0;
	padding: 0;
	background: var(--cevk-bg);
	border: 1px solid var(--cevk-border);
	border-radius: var(--cevk-radius);
	color: var(--cevk-text);
	font-family: var(--cevk-font);
	font-size: var(--cevk-size-base);
	line-height: var(--cevk-line);
	overflow: hidden;
}

#cevk-atp *,
#cevk-atp *::before,
#cevk-atp *::after {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

#cevk-atp p,
#cevk-atp ul,
#cevk-atp li,
#cevk-atp table,
#cevk-atp fieldset,
#cevk-atp legend,
#cevk-atp label,
#cevk-atp span,
#cevk-atp strong,
#cevk-atp th,
#cevk-atp td,
#cevk-atp caption,
#cevk-atp button,
#cevk-atp input {
	color: inherit;
}

/* --------------------------------------------------------- Cabecera ----- */

#cevk-atp .cevk__head {
	padding: var(--cevk-pad);
	background: var(--cevk-surface);
	border-bottom: 1px solid var(--cevk-border);
}

#cevk-atp .cevk__title {
	margin: 0 0 8px;
	padding: 0;
	font-size: var(--cevk-size-title);
	font-weight: var(--cevk-weight-bold);
	line-height: 1.3;
	color: var(--cevk-text);
}

#cevk-atp .cevk__intro {
	margin: 0;
	font-size: var(--cevk-size-small);
	color: var(--cevk-text-muted);
}

/* ------------------------------------------------------------ Cuerpo ---- */

#cevk-atp .cevk__body {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	align-items: stretch;
}

#cevk-atp .cevk__panel {
	padding: var(--cevk-pad);
}

#cevk-atp .cevk__panel--inputs {
	flex: 1 1 280px;
	background: var(--cevk-bg);
	border-bottom: 1px solid var(--cevk-border);
}

#cevk-atp .cevk__panel--results {
	flex: 999 1 320px;
	background: var(--cevk-surface);
	border-bottom: 1px solid var(--cevk-border);
}

/* ------------------------------------------------------------ Campos ---- */

#cevk-atp .cevk__field {
	margin: 0 0 var(--cevk-gap);
}

#cevk-atp .cevk__label,
#cevk-atp .cevk__legend {
	display: block;
	margin: 0 0 6px;
	padding: 0;
	font-size: var(--cevk-size-small);
	font-weight: var(--cevk-weight-bold);
}

#cevk-atp .cevk__input {
	display: block;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	background: var(--cevk-bg);
	border: 1px solid var(--cevk-border-strong);
	border-radius: var(--cevk-radius-sm);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.3;
	color: var(--cevk-text);
	-webkit-appearance: none;
	appearance: none;
}

#cevk-atp .cevk__input:focus {
	border-color: var(--cevk-accent);
	outline: 2px solid var(--cevk-focus);
	outline-offset: 1px;
}

#cevk-atp .cevk__input--invalid {
	border-color: var(--cevk-negative);
	background: var(--cevk-negative-soft);
}

#cevk-atp .cevk__range {
	display: block;
	width: 100%;
	margin: 10px 0 0;
	padding: 0;
	background: transparent;
	accent-color: var(--cevk-accent);
	font-size: 16px;
}

#cevk-atp .cevk__hint {
	margin: 6px 0 0;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__fieldset {
	margin: 0 0 var(--cevk-gap);
	padding: 0;
	border: 0;
}

#cevk-atp .cevk__radios {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cevk-gap-sm);
}

#cevk-atp .cevk__radio {
	display: block;
	flex: 1 1 110px;
	position: relative;
}

#cevk-atp .cevk__radio input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	border: 0;
	opacity: 0;
}

#cevk-atp .cevk__radio label {
	display: block;
	padding: 9px 8px;
	background: var(--cevk-bg);
	border: 1px solid var(--cevk-border-strong);
	border-radius: var(--cevk-radius-sm);
	font-size: var(--cevk-size-tiny);
	font-weight: var(--cevk-weight-bold);
	text-align: center;
	color: var(--cevk-text-muted);
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#cevk-atp .cevk__radio input:checked + label {
	background: var(--cevk-accent-soft);
	border-color: var(--cevk-accent);
	color: var(--cevk-accent);
}

#cevk-atp .cevk__radio input:focus-visible + label {
	outline: 2px solid var(--cevk-focus);
	outline-offset: 2px;
}

#cevk-atp .cevk__actions {
	margin: 0;
}

#cevk-atp .cevk__btn {
	display: inline-block;
	width: 100%;
	margin: 0;
	padding: 10px 14px;
	background: var(--cevk-surface-alt);
	border: 1px solid var(--cevk-border-strong);
	border-radius: var(--cevk-radius-sm);
	font-family: inherit;
	font-size: var(--cevk-size-small);
	font-weight: var(--cevk-weight-bold);
	color: var(--cevk-text);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

#cevk-atp .cevk__btn:hover {
	background: var(--cevk-border);
}

#cevk-atp .cevk__btn:focus-visible {
	outline: 2px solid var(--cevk-focus);
	outline-offset: 2px;
}

/* --------------------------------------------------------- Resultados --- */

#cevk-atp .cevk__verdict {
	margin: 0 0 var(--cevk-gap);
	padding: 10px 14px;
	border: 1px solid var(--cevk-positive);
	border-radius: var(--cevk-radius-sm);
	background: var(--cevk-positive-soft);
	font-size: var(--cevk-size-small);
	font-weight: var(--cevk-weight-bold);
	color: var(--cevk-positive);
}

#cevk-atp .cevk__verdict--negative {
	border-color: var(--cevk-negative);
	background: var(--cevk-negative-soft);
	color: var(--cevk-negative);
}

#cevk-atp .cevk__verdict--neutral {
	border-color: var(--cevk-border-strong);
	background: var(--cevk-surface-alt);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: var(--cevk-gap-sm);
	margin: 0 0 var(--cevk-gap);
	padding: 0;
	list-style: none;
}

#cevk-atp .cevk__stat {
	display: block;
	margin: 0;
	padding: 12px;
	background: var(--cevk-bg);
	border: 1px solid var(--cevk-border);
	border-radius: var(--cevk-radius-sm);
}

#cevk-atp .cevk__stat--wide {
	grid-column: 1 / -1;
	background: var(--cevk-accent-soft);
	border-color: var(--cevk-accent);
}

#cevk-atp .cevk__stat-label {
	display: block;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__stat-value {
	display: block;
	margin-top: 4px;
	font-size: var(--cevk-size-stat);
	font-weight: var(--cevk-weight-bold);
	line-height: 1.2;
	color: var(--cevk-text);
}

#cevk-atp .cevk__stat-value--big {
	font-size: var(--cevk-size-stat-big);
	color: var(--cevk-accent);
}

#cevk-atp .cevk__stat-value--positive {
	color: var(--cevk-positive);
}

#cevk-atp .cevk__stat-value--negative {
	color: var(--cevk-negative);
}

#cevk-atp .cevk__stat-note {
	display: block;
	margin-top: 4px;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__warning {
	margin: 0 0 var(--cevk-gap);
	padding: 10px 14px;
	background: var(--cevk-warning-soft);
	border: 1px solid var(--cevk-warning);
	border-radius: var(--cevk-radius-sm);
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-warning);
}

#cevk-atp .cevk__warning[hidden] {
	display: none;
}

#cevk-atp .cevk__breakeven {
	margin: 0 0 var(--cevk-gap);
	padding: 12px 14px;
	background: var(--cevk-bg);
	border: 1px solid var(--cevk-border);
	border-radius: var(--cevk-radius-sm);
}

#cevk-atp .cevk__breakeven-item {
	margin: 0;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__breakeven-item + .cevk__breakeven-item {
	margin-top: 6px;
}

#cevk-atp .cevk__breakeven-item strong {
	font-weight: var(--cevk-weight-bold);
	color: var(--cevk-text);
}

/* ------------------------------------------------------------- Tabla ---- */

#cevk-atp .cevk__table-wrap {
	margin: 0;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	border: 1px solid var(--cevk-border);
	border-radius: var(--cevk-radius-sm);
	background: var(--cevk-bg);
}

#cevk-atp .cevk__table {
	width: 100%;
	min-width: 460px;
	margin: 0;
	border-collapse: collapse;
	font-size: var(--cevk-size-tiny);
}

#cevk-atp .cevk__caption {
	padding: 10px 12px;
	font-size: var(--cevk-size-tiny);
	font-weight: var(--cevk-weight-bold);
	text-align: left;
	color: var(--cevk-text-muted);
	caption-side: top;
}

#cevk-atp .cevk__table th,
#cevk-atp .cevk__table td {
	padding: 9px 12px;
	border-top: 1px solid var(--cevk-border);
	text-align: right;
	vertical-align: top;
	white-space: nowrap;
}

#cevk-atp .cevk__table thead th {
	background: var(--cevk-surface-alt);
	border-top: 0;
	font-weight: var(--cevk-weight-bold);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__table thead th:first-child,
#cevk-atp .cevk__table tbody th {
	text-align: left;
	white-space: normal;
}

#cevk-atp .cevk__table tbody th {
	font-weight: var(--cevk-weight-bold);
}

#cevk-atp .cevk__row--highlight th,
#cevk-atp .cevk__row--highlight td {
	background: var(--cevk-accent-soft);
	color: var(--cevk-accent);
}

/* ---------------------------------------------------------- Pie ---------- */

#cevk-atp .cevk__foot {
	padding: 14px var(--cevk-pad);
	background: var(--cevk-surface-alt);
}

#cevk-atp .cevk__formula {
	margin: 0 0 6px;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

#cevk-atp .cevk__disclaimer {
	margin: 0;
	font-size: var(--cevk-size-tiny);
	color: var(--cevk-text-muted);
}

/* ----------------------------------------------- Ampliación en pantallas
   grandes (solo cosmética: el diseño base ya es de una sola columna) ------ */

@media (min-width: 720px) {

	#cevk-atp .cevk__panel--inputs {
		border-right: 1px solid var(--cevk-border);
	}

	#cevk-atp .cevk__btn {
		width: auto;
	}
}

@media (prefers-reduced-motion: reduce) {

	#cevk-atp .cevk__radio label,
	#cevk-atp .cevk__btn {
		transition: none;
	}
}
