/* ==============================================================
   VidaPro — Estilos comunes para todas las calculadoras
   Sistema de diseño: Fintech-style Dark UI
   ============================================================== */

:root {
	--bm-bg:         #0d1117;
	--bm-surface:    #161b22;
	--bm-border:     #30363d;
	--bm-text:       #e6edf3;
	--bm-muted:      #8b949e;
	--bm-accent:     #00ff88;
	--bm-blue:       #00b4ff;
	--bm-warn:       #ff3366;
	--bm-radius:     12px;
	--bm-glow:       0 0 20px rgba(0, 255, 136, 0.12);
	--bm-font:       -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, Oxygen, sans-serif;
}

/* ── Dashboard wrapper ─────────────────────────────────────────── */
.biomap-dashboard {
	font-family: var(--bm-font);
	background: var(--bm-bg);
	color: var(--bm-text);
	padding: 0.75rem;
	border-radius: var(--bm-radius);
	max-width: 1120px;
	margin: 0 auto;
	line-height: 1.5;
}

.biomap-dashboard *,
.biomap-dashboard *::before,
.biomap-dashboard *::after {
	box-sizing: border-box;
}

/* ── Sections ──────────────────────────────────────────────────── */
.biomap-section {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-radius);
	padding: 1.25rem;
	margin-bottom: 0.75rem;
}

.biomap-section-header {
	margin-bottom: 1.5rem;
}

.biomap-section-header h3 {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--bm-text);
	margin: 0 0 0.35rem;
}

.biomap-section-header p {
	color: var(--bm-muted);
	font-size: 0.875rem;
	margin: 0;
}

/* ── Form controls ─────────────────────────────────────────────── */
.biomap-field {
	margin-bottom: 1.25rem;
}

.biomap-field label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--bm-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.5rem;
}

.biomap-dashboard .biomap-field select,
.biomap-dashboard input.biomap-input,
.biomap-dashboard select.biomap-select {
	width: 100% !important;
	padding: 0.7rem 1rem !important;
	background-color: var(--bm-bg) !important;
	border: 1px solid var(--bm-border) !important;
	border-radius: 8px !important;
	color: var(--bm-text) !important;
	font-size: 0.9375rem !important;
	font-family: var(--bm-font) !important;
	transition: border-color 0.2s, box-shadow 0.2s;
	-webkit-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	line-height: 1.4 !important;
	min-height: 0 !important;
	max-height: none !important;
	box-shadow: none !important;
	margin: 0 !important;
}

.biomap-dashboard .biomap-field select,
.biomap-dashboard select.biomap-select {
	padding-right: 2.5rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238b949e' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 1rem center !important;
	background-size: 12px !important;
	cursor: pointer;
}

.biomap-dashboard .biomap-field select:focus,
.biomap-dashboard input.biomap-input:focus,
.biomap-dashboard select.biomap-select:focus {
	outline: none !important;
	border-color: var(--bm-accent) !important;
	box-shadow: 0 0 0 3px rgba(0, 255, 136, 0.08) !important;
}

.biomap-dashboard .biomap-field select option,
.biomap-dashboard select.biomap-select option {
	background: var(--bm-bg);
	color: var(--bm-text);
	padding: 0.5rem;
}

.biomap-dashboard .biomap-field select optgroup {
	background: var(--bm-surface);
	color: var(--bm-muted);
}

/* ── Slider ────────────────────────────────────────────────────── */
.biomap-slider-wrap {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.biomap-slider-wrap input[type="range"] {
	flex: 1;
	-webkit-appearance: none;
	appearance: none;
	height: 6px;
	background: var(--bm-border);
	border-radius: 3px;
	outline: none;
}

.biomap-slider-wrap input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--bm-accent);
	cursor: pointer;
	box-shadow: var(--bm-glow);
	border: none;
}

.biomap-slider-wrap input[type="range"]::-moz-range-thumb {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--bm-accent);
	cursor: pointer;
	box-shadow: var(--bm-glow);
	border: none;
}

.biomap-slider-val {
	font-weight: 700;
	color: var(--bm-accent);
	font-size: 1.125rem;
	min-width: 55px;
	text-align: right;
}

/* ── Stat cards ────────────────────────────────────────────────── */
.biomap-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
	margin-top: 0.25rem;
}

.biomap-stat-card {
	background: var(--bm-bg);
	border: 1px solid var(--bm-border);
	border-radius: 8px;
	padding: 0.875rem 1rem;
	text-align: center;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.biomap-stat-card.full-width {
	grid-column: 1 / -1;
}

.biomap-stat-card.accent {
	border-color: var(--bm-accent);
	box-shadow: var(--bm-glow);
}

.biomap-stat-card.warn {
	border-color: var(--bm-warn);
}

.biomap-stat-label {
	display: block;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--bm-muted);
	margin-bottom: 0.25rem;
}

.biomap-stat-value {
	display: block;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--bm-text);
}

.biomap-stat-value.small {
	font-size: 0.875rem;
	font-weight: 500;
}

.biomap-stat-card.accent .biomap-stat-value {
	color: var(--bm-accent);
}

.biomap-stat-card.warn .biomap-stat-value {
	color: var(--bm-warn);
}

/* ── Chart wrapper ─────────────────────────────────────────────── */
.biomap-chart-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 340px;
	margin: 0 auto;
}

/* ── CTA Button ────────────────────────────────────────────────── */
.biomap-dashboard .biomap-cta-btn {
	background: transparent !important;
	border: 1px solid var(--bm-border) !important;
	color: var(--bm-text) !important;
	padding: 0.875rem 2rem !important;
	border-radius: 8px !important;
	font-size: 0.9375rem !important;
	font-weight: 500;
	font-family: var(--bm-font);
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s, box-shadow 0.2s, background 0.2s;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.biomap-dashboard .biomap-cta-btn:hover,
.biomap-dashboard .biomap-cta-btn:focus {
	border-color: var(--bm-accent) !important;
	color: var(--bm-accent) !important;
	background: transparent !important;
	box-shadow: var(--bm-glow) !important;
}

/* ── Table ─────────────────────────────────────────────────────── */
.biomap-table-filters {
	display: flex;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.biomap-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.biomap-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.biomap-table th,
.biomap-table td {
	padding: 0.75rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--bm-border);
	white-space: nowrap;
}

.biomap-table th {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--bm-muted);
	font-weight: 600;
	position: sticky;
	top: 0;
	background: var(--bm-surface);
	z-index: 1;
}

.biomap-table th[data-sort] {
	cursor: pointer;
	user-select: none;
	transition: color 0.15s;
}

.biomap-table th[data-sort]:hover {
	color: var(--bm-accent);
}

.biomap-table th.asc::after  { content: ' ↑'; color: var(--bm-accent); }
.biomap-table th.desc::after { content: ' ↓'; color: var(--bm-accent); }

.biomap-table tbody tr {
	transition: background 0.15s;
}

.biomap-table tbody tr:hover {
	background: rgba(0, 255, 136, 0.03);
}

/* ── Loading ───────────────────────────────────────────────────── */
.biomap-loading {
	text-align: center;
	padding: 3rem;
	color: var(--bm-muted);
}

.biomap-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--bm-border);
	border-top-color: var(--bm-accent);
	border-radius: 50%;
	margin: 0 auto 1rem;
	animation: bm-spin 0.75s linear infinite;
}

@keyframes bm-spin {
	to { transform: rotate(360deg); }
}

/* ── Embed Picker ──────────────────────────────────────────────── */
.biomap-embed-picker {
	text-align: center;
}

.biomap-embed-title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--bm-text);
	margin: 0 0 0.25rem;
}

.biomap-embed-desc {
	color: var(--bm-muted);
	font-size: 0.875rem;
	margin: 0 0 1.25rem;
}

.biomap-embed-tabs {
	display: inline-flex;
	gap: 0;
	border: 1px solid var(--bm-border);
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1.25rem;
}

.biomap-dashboard .biomap-embed-tab {
	background: transparent !important;
	border: none !important;
	color: var(--bm-muted) !important;
	padding: 0.6rem 1.5rem !important;
	font-size: 0.875rem !important;
	font-weight: 500;
	font-family: var(--bm-font);
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
	margin: 0 !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
}

.biomap-dashboard .biomap-embed-tab:first-child {
	border-right: 1px solid var(--bm-border) !important;
}

.biomap-dashboard .biomap-embed-tab.active {
	background: var(--bm-accent) !important;
	color: #000 !important;
	font-weight: 600;
}

.biomap-embed-preview {
	margin-bottom: 1rem;
}

.biomap-dashboard .biomap-embed-textarea {
	width: 100% !important;
	padding: 0.75rem !important;
	background: var(--bm-bg) !important;
	border: 1px solid var(--bm-border) !important;
	border-radius: 8px !important;
	color: var(--bm-text) !important;
	font-family: 'Consolas', 'SF Mono', 'Monaco', monospace !important;
	font-size: 0.8125rem !important;
	resize: none;
	line-height: 1.5 !important;
}

.biomap-copy-btn {
	margin: 0 auto;
	display: block !important;
	background: transparent !important;
	border: 1px solid var(--bm-border) !important;
	color: var(--bm-text) !important;
	padding: 0.7rem 1.5rem !important;
	border-radius: 8px !important;
	font-size: 0.875rem !important;
	font-weight: 500;
	font-family: var(--bm-font);
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s;
	box-shadow: none !important;
}

.biomap-copy-btn:hover {
	border-color: var(--bm-accent) !important;
	color: var(--bm-accent) !important;
}

/* ── Responsive (componentes comunes) ──────────────────────────── */
@media (max-width: 768px) {
	.biomap-dashboard {
		padding: 0.5rem;
	}

	.biomap-section {
		padding: 1rem;
	}

	.biomap-stats {
		grid-template-columns: 1fr;
	}

	.biomap-table-filters {
		flex-direction: column;
	}

	.biomap-dashboard .biomap-cta-btn {
		padding: 0.7rem 1.25rem !important;
		font-size: 0.8125rem !important;
		width: 100%;
		justify-content: center;
	}
}
