/* Página unificada Conta + Preferências — réplica do /preferences do Waves Pro. */
.wv-pf {
	--pf-red: #fe0000;
	--pf-ink: #1a1e2a;
	--pf-mut: #6b7280;
	--pf-line: #e5e7eb;
	--pf-soft: #f9fafb;
	color: var(--pf-ink);
	font-family: inherit;
}
.wv-pf__card {
	max-width: 680px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--pf-line);
	border-radius: 20px;
	padding: 28px 28px 24px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .06);
}
.wv-pf__h1 { font-size: 24px; font-weight: 800; margin: 0 0 4px; display: flex; align-items: center; gap: 10px; }
.wv-pf__sub { color: var(--pf-mut); margin: 0 0 22px; font-size: 14px; }
.wv-pf__ic { font-size: 18px; }
.wv-loading { color: var(--pf-mut); padding: 20px 0; }
.wv-prefs__guest { text-align: center; padding: 24px; }
.wv-prefs__guest p { color: var(--pf-mut); margin: 0 0 14px; }

.wv-pf__section { margin-bottom: 4px; }
.wv-pf__h3 { font-size: 18px; font-weight: 800; margin: 18px 0 14px; display: flex; align-items: center; gap: 8px; }
.wv-pf__hr { border: 0; border-top: 1px solid var(--pf-line); margin: 22px 0; }

.wv-pf__grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-bottom: 14px; }
.wv-pf__field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.wv-pf__field > span, .wv-pf__cap { font-weight: 700; color: var(--pf-ink); font-size: 13px; }
.wv-pf__cap { display: block; margin-bottom: 8px; }
.wv-pf__input, .wv-pf__select {
	width: 100%; box-sizing: border-box; padding: 11px 12px; font: inherit; font-size: 14px;
	border: 1px solid var(--pf-line); border-radius: 10px; background: #fff; color: var(--pf-ink);
}
.wv-pf__input:focus, .wv-pf__select:focus { outline: 2px solid rgba(254, 0, 0, .25); border-color: var(--pf-red); }
.wv-pf__age { color: var(--pf-mut); font-weight: 400; font-size: 12px; }
.wv-pf__hint { color: var(--pf-mut); font-size: 12px; }

/* Avatar */
.wv-pf__avatar-row { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.wv-pf__avatar.wv-avatar { width: 64px; height: 64px; font-size: 26px; }
.wv-pf__avatar-actions { display: flex; flex-direction: column; gap: 6px; }
.wv-pf__avatar-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.wv-pf__avatar-btns .wv-btn { padding: 7px 14px; }

/* Modelos de prancha */
.wv-pf__boards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.wv-pf__board {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	padding: 14px 8px; border: 1.5px solid var(--pf-line); border-radius: 12px; cursor: pointer;
	background: #fff; transition: border-color .15s, color .15s; text-align: center;
}
.wv-pf__board-num {
	width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: #fde8e8; color: var(--pf-ink); font-weight: 800; font-size: 14px;
}
.wv-pf__board-label { font-size: 13px; font-weight: 600; }
.wv-pf__board.is-selected { border-color: var(--pf-red); color: var(--pf-red); }
.wv-pf__board.is-selected .wv-pf__board-num { background: var(--pf-red); color: #fff; }

.wv-pf__check { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; font-weight: 400; cursor: pointer; }
.wv-pf__check input { margin-top: 3px; }

/* Meus Picos */
.wv-pf__peaks { display: flex; flex-direction: column; gap: 10px; margin: 10px 0 16px; }
.wv-pf__peak {
	display: flex; align-items: center; gap: 12px; padding: 12px 14px;
	border: 1.5px solid var(--pf-line); border-radius: 12px; background: #fff;
}
.wv-pf__peak.is-main { border-color: var(--pf-red); background: #fff5f5; }
.wv-pf__peak-order { display: flex; flex-direction: column; gap: 2px; }
.wv-pf__peak-order button {
	width: 26px; height: 22px; border: 1px solid var(--pf-line); border-radius: 6px; background: #fff;
	cursor: pointer; color: var(--pf-mut); font-size: 11px; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
}
.wv-pf__peak-order button:hover:not(:disabled) { background: #f4f5f7 !important; border-color: #d0d6e3; color: var(--pf-ink) !important; }
.wv-pf__peak-order button:disabled { opacity: .35; cursor: default; }
.wv-pf__peak-info { flex: 1 1 auto; min-width: 0; }
.wv-pf__peak-name { font-weight: 700; font-size: 15px; }
.wv-pf__peak-loc { font-size: 12px; color: var(--pf-mut); }
.wv-pf__peak-main { font-size: 12px; font-weight: 700; color: #fff; background: var(--pf-red); padding: 5px 12px; border-radius: 999px; white-space: nowrap; }
.wv-pf__peak-setmain { font-size: 12px; font-weight: 700; color: var(--pf-red); background: #fff; border: 1px solid var(--pf-red) !important; padding: 6px 12px; border-radius: 999px; cursor: pointer; white-space: nowrap; transition: background-color .15s, color .15s; }
.wv-pf__peak-setmain:hover { background: var(--pf-red) !important; color: #fff !important; }
.wv-pf__peak-del { border: 0 !important; background: transparent !important; color: var(--pf-red) !important; cursor: pointer; font-size: 16px; padding: 4px; }
.wv-pf__peak-del:hover { background: transparent !important; color: #c20000 !important; }
.wv-pf__empty, .wv-pf__muted { color: var(--pf-mut); font-size: 13px; text-align: center; padding: 12px; }

/* CTA Pro (não-Pro) — réplica do card de gating da previsão. */
.wv-pf__pro-cta { background: var(--pf-red); border-radius: 18px; padding: 26px 24px; text-align: center; color: #fff; margin: 4px 0 16px; }
.wv-pf__pro-badge { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 14px; color: #fff; margin-bottom: 10px; }
.wv-pf__pro-badge b { background: #fff; color: var(--pf-red); border-radius: 5px; padding: 1px 6px; font-size: 12px; }
.wv-pf__pro-title { font-size: 20px; font-weight: 800; margin: 0 0 8px; color: #fff; line-height: 1.2; }
.wv-pf__pro-sub { font-size: 14px; margin: 0 0 18px; color: rgba(255, 255, 255, .92); }
.wv-pf__pro-btn { display: inline-block; background: #fff !important; color: var(--pf-red) !important; font-weight: 800; font-size: 14px; letter-spacing: .02em; padding: 13px 30px; border-radius: 999px; text-decoration: none; }
.wv-pf__pro-btn:hover { background: #f1f1f1 !important; color: var(--pf-red) !important; }

.wv-pf__addbox { border: 1px solid var(--pf-line); border-radius: 14px; padding: 16px; }
.wv-pf__grid-add { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; margin-bottom: 10px; }
.wv-pf__addresults { display: flex; flex-direction: column; gap: 8px; }
.wv-pf__addpeak {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 10px 12px; border: 1px solid var(--pf-line); border-radius: 10px; font-size: 14px;
}
/* Botão "Adicionar": vermelho-outline; hover = vermelho waves + branco. */
.wv-pf__addbtn { font-size: 12px; font-weight: 700; color: var(--pf-red) !important; background: #fff !important; border: 1px solid var(--pf-red) !important; border-radius: 999px; padding: 5px 14px; cursor: pointer; transition: background-color .15s, color .15s; }
.wv-pf__addbtn:hover { background: var(--pf-red) !important; color: #fff !important; border-color: var(--pf-red) !important; }
/* Já favoritado → "Remover": preto com fonte branca; hover = vermelho waves. */
.wv-pf__addbtn.is-fav { background: #000 !important; color: #fff !important; border-color: #000 !important; }
.wv-pf__addbtn.is-fav:hover { background: var(--pf-red) !important; color: #fff !important; border-color: var(--pf-red) !important; }
.wv-pf__addpeak.is-fav { border-color: #000; }

.wv-pf__save {
	width: 100%; margin-top: 18px; padding: 15px; border: 0 !important; border-radius: 12px; cursor: pointer;
	color: #fff !important; -webkit-text-fill-color: #fff !important; font-weight: 700; font-size: 16px;
	background: var(--pf-red) !important; box-shadow: none !important; opacity: 1 !important; text-shadow: none;
}
.wv-pf__save:hover { background: #c20000 !important; filter: none; }
.wv-pf__save:disabled { opacity: .55 !important; cursor: default; }

@media (max-width: 600px) {
	.wv-pf__card { padding: 18px 14px; border-radius: 14px; }
	.wv-pf__grid2 { grid-template-columns: 1fr; }
	.wv-pf__boards { grid-template-columns: repeat(3, 1fr); }
	.wv-pf__grid-add { grid-template-columns: 1fr; }
}

/* Páginas de retorno do checkout (sucesso) — mesmo card da conta. */
.wv-pf--return { display: flex; justify-content: center; }
.wv-return__icon {
	width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: #ecfdf5; color: #16a34a; font-size: 34px; font-weight: 800;
}
.wv-return__btn { display: inline-block; margin-top: 18px; text-decoration: none; }

/* Spinner de confirmação na página de sucesso */
.wv-return__spinner {
	width: 44px; height: 44px; margin: 8px auto 16px; border-radius: 50%;
	border: 4px solid #e5e7eb; border-top-color: var(--pf-red);
	animation: wv-spin .8s linear infinite;
}
@keyframes wv-spin { to { transform: rotate(360deg); } }

/* Ícone de erro nas páginas de retorno (mesmo estilo do ✓, em vermelho). */
.wv-return__icon--err { background: #fef2f2; color: var(--pf-red); }

/* Reset de senha: inputs com contorno escuro visível no card branco. */
.wv-reset__form { display: flex; flex-direction: column; }
.wv-reset__form label { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pf-ink); margin: 14px 0 6px; }
.wv-reset__form input {
	width: 100%; box-sizing: border-box; padding: 12px 14px; font: inherit; font-size: 15px;
	border: 1.5px solid #1a1e2a !important; border-radius: 10px !important; background: #fff !important; color: var(--pf-ink);
}
.wv-reset__form input:focus { outline: none; border-color: var(--pf-red) !important; box-shadow: 0 0 0 3px rgba(254,0,0,.15) !important; }
.wv-reset__form .wv-btn { margin-top: 20px; }

/* Botão "ver senha" (olho) nos campos do reset — SVG inline, sem borda do tema. */
.wv-reset__field { position: relative; }
.wv-reset__eye {
	position: absolute; top: 50%; right: 8px; transform: translateY(-50%);
	width: 34px; height: 34px; padding: 0; cursor: pointer; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 0 !important; background: transparent !important; box-shadow: none !important;
	color: #fe0000 !important; transition: background-color .15s, color .15s;
}
/* Hover: caixa vermelha + ícone branco (contraste). */
.wv-reset__eye:hover,
.wv-reset__eye:focus-visible {
	background: #fe0000 !important; color: #ffffff !important;
}
.wv-reset__eye .wv-eye { width: 22px; height: 22px; display: block; }
.wv-reset__eye .wv-eye[hidden] { display: none; }

/* ───────────────── Hub da conta (/conta e /conta/<seção>) ───────────────── */
/* Desktop: menu à ESQUERDA (sidebar) + conteúdo. Mobile: menu no TOPO. Fundo
   transparente — o background é o da página/tema, igual em /conta e sub-rotas. */
/* O componente ocupa 100% do container do Elementor (largura/fundo/margens são
   controlados pelo container da página /conta — sem full-bleed, sem max-width). */
.wv-hub {
	--pf-red: #fe0000; --pf-ink: #1a1e2a; --pf-mut: #6b7280; --pf-line: #e5e7eb; --pf-soft: #f9fafb;
	display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px;
	width: 100%; max-width: 100%; margin: 0; padding: 0; box-sizing: border-box;
	align-items: start; color: var(--pf-ink); background: transparent;
}
.wv-hub--full, .wv-hub--guest, .wv-hub--preview {
	display: block; width: 100%; max-width: 100%; margin: 0; padding: 0; box-sizing: border-box;
}
.wv-hub__content { min-width: 0; }
/* Todas as seções preenchem a largura disponível (sem cap por seção). */
.wv-hub .wv-pf__card { max-width: none; margin: 0; width: 100%; box-sizing: border-box; }
.wv-hub .wv-pf, .wv-hub .wv-sub, .wv-hub .wv-fav-dash { max-width: none; width: 100%; margin: 0; }

/* Navegação — sidebar vertical (desktop). */
.wv-hub__nav, .wv-hub__menu {
	display: flex; flex-direction: column; gap: 4px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--pf-line); border-radius: 14px;
	padding: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, .05);
	position: sticky; top: 90px;
}
.wv-hub__link {
	display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box;
	padding: 11px 14px; border: 0; border-left: 4px solid transparent; border-radius: 10px;
	background: none; color: var(--pf-ink); text-decoration: none; font: inherit; font-size: 14px;
	font-weight: 600; text-align: left; cursor: pointer; transition: background-color .15s, color .15s;
}
.wv-hub__link:hover { color: var(--pf-red); }
/* Item ativo: SEM fundo/pílula — barra vermelha forte (à esquerda no sidebar). */
.wv-hub__link.is-active { background: none; color: var(--pf-red); border-left-color: var(--pf-red); font-weight: 800; }
.wv-hub__ic { font-size: 16px; width: 20px; text-align: center; flex-shrink: 0; }

/* Botão "Sair" — ghost vermelho Waves (hover preenchido), ao final do bloco Conta. */
.wv-pf__logout-wrap { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--pf-line); }
.wv-hub__logout {
	display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box;
	padding: 13px 12px; border: 1.5px solid var(--pf-red) !important; border-radius: 12px;
	background: #fff !important; color: var(--pf-red) !important; font: inherit; font-size: 15px;
	font-weight: 700; cursor: pointer; transition: background-color .15s, color .15s; box-shadow: none !important;
}
.wv-hub__logout:hover, .wv-hub__logout:focus-visible { background: var(--pf-red) !important; color: #fff !important; }
.wv-hub__logout .wv-hub__ic { color: inherit; }

/* Mobile: menu vira barra horizontal no topo — item ativo com SUBLINHADO vermelho
   forte abaixo (estilo Surfline), sem fundo/pílula. */
@media (max-width: 860px) {
	/* Mobile: empilha (menu no topo). Largura 100% do container — sem full-bleed. */
	.wv-hub, .wv-hub--full, .wv-hub--guest, .wv-hub--preview {
		display: block; box-sizing: border-box; width: 100%; max-width: 100%; margin: 0; padding: 0;
	}
	.wv-hub__nav, .wv-hub__menu {
		flex-direction: row; position: static; border-radius: 14px; margin: 0 0 18px; padding: 4px 8px;
	}
	.wv-hub__link {
		flex: 1; justify-content: center; text-align: center; gap: 8px;
		border-left: 0; border-radius: 0; border-bottom: 3px solid transparent; padding: 12px 10px;
	}
	.wv-hub__link:hover { background: none; }
	.wv-hub__link.is-active {
		border-left: 0; border-bottom-color: var(--pf-red); color: var(--pf-red); background: none;
	}
}
@media (max-width: 600px) {
	.wv-hub__link { flex-direction: column; gap: 4px; padding: 10px 6px; font-size: 13px; }
}

/* ───────────── Zona de perigo (excluir conta — LGPD) ───────────── */
.wv-danger {
	margin-top: 24px; padding: 18px; border: 1px solid #f3c2c2;
	background: #fff7f7; border-radius: 12px;
}
.wv-danger__title { margin: 0 0 6px; font-size: 15px; font-weight: 800; color: #b00000; }
.wv-danger__text { margin: 0 0 12px; font-size: 13px; color: #7a2222; }
.wv-account-delete {
	background: #fff !important; color: #fe0000 !important; border: 1.5px solid #fe0000 !important;
	box-shadow: none !important; font-weight: 700;
}
.wv-account-delete:hover { background: #fe0000 !important; color: #fff !important; }

/* ───────────── Dashboard de Favoritos (abas Favoritos / Próximos) ───────────── */
.wv-dash {
	--pf-red: #fe0000; --pf-ink: #1a1e2a; --pf-mut: #6b7280; --pf-line: #e5e7eb; --pf-soft: #f9fafb;
	width: 100%; max-width: 100%; margin: 0; color: var(--pf-ink);
}
.wv-dash__tabs {
	display: flex; width: max-content; max-width: 100%; gap: 4px; background: #fff; border: 1px solid var(--pf-line);
	border-radius: 999px; padding: 5px; margin: 0 auto 22px; box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
/* Heading "Picos Favoritos" (azul, espelha o dashboard do Pro) + Explorar todos. */
.wv-fav-dash__title.wpe__heading { color: #1C1EF8; }
.wpe__explore-all { display: flex; justify-content: center; margin-top: 22px; }
.wpe__explore-all-btn { display: inline-block; }
.wv-dash__tab {
	display: inline-flex; align-items: center; gap: 7px; border: 0 !important; background: none !important;
	padding: 9px 20px; border-radius: 999px !important; font: inherit; font-size: 14px; font-weight: 700;
	color: var(--pf-mut) !important; cursor: pointer; box-shadow: none !important;
	transition: background-color .15s, color .15s;
}
.wv-dash__tab:hover { background: none !important; color: var(--pf-red) !important; }
.wv-dash__tab.is-active { background: var(--pf-red) !important; color: #fff !important; }
.wv-dash__tab-ic { font-size: 14px; line-height: 1; }
.wv-dash__panel { display: none; }
.wv-dash__panel.is-active { display: block; }
.wv-dash__explore { text-align: center; margin-top: 20px; }
.wv-dash__explore .wv-btn { display: inline-block; }
/* Mapa do "Próximos" com altura utilizável dentro da aba. */
.wv-dash .wf-nearby__map { min-height: 320px; border-radius: 14px; overflow: hidden; }
@media (max-width: 600px) {
	.wv-dash__tabs { display: flex; }
	.wv-dash__tab { flex: 1; justify-content: center; padding: 9px 12px; }
}

/* ───────── Próximos: mapa + lista compacta (espelha o /dashboard do Pro) ───────── */
.wv-nearby { margin: 0; }
.wv-nearby__map { width: 100%; height: 420px; min-height: 320px; }
.nearby-spots-header { display: flex; align-items: center; gap: 12px; padding: 18px 16px 14px; flex-wrap: wrap; }
.nearby-spots-header h3 { margin: 0; font-size: 1.4rem; font-weight: 800; color: #1a1e2a; }
.nearby-spots-hint { color: #9aa1ad; font-size: 0.85rem; font-style: italic; display: inline-flex; align-items: center; gap: 6px; }
.nearby-spot-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 16px; border-top: 1px solid #f0f2f5; cursor: pointer; transition: background-color .12s; }
.nearby-spot-item:hover, .nearby-spot-item.is-focus { background: #f7f9fc; }
.nearby-spot-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.nearby-spot-flag { font-size: 1.4rem; flex-shrink: 0; }
.nearby-spot-info { min-width: 0; }
.nearby-spot-name { font-size: 1.05rem; font-weight: 800; color: #1a1e2a; }
.nearby-spot-distance { color: #6b7280; font-size: 0.85rem; display: flex; align-items: center; gap: 5px; margin: 2px 0 7px; }
.nearby-spot-summary { display: flex; gap: 6px; flex-wrap: wrap; }
.nearby-summary-pill { display: inline-flex; align-items: center; gap: 5px; background: #f0f2f5; color: #374151; border-radius: 100px; padding: 3px 10px; font-size: 0.78rem; font-weight: 600; }
.nearby-summary-pill i { color: #9aa1ad; }
.nearby-spot-tail { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nearby-spot-score { display: inline-flex; align-items: center; gap: 6px; background: #f7f9fc; border-radius: 100px; padding: 4px 12px; font-weight: 800; }
.nearby-spot-score-dot { width: 10px; height: 10px; border-radius: 50%; }
.nearby-spot-score-num { font-size: 0.95rem; color: #1a1e2a; }
.nearby-spot-arrow { color: #c3c8d1; }
.nearby-spots-empty { padding: 24px 16px; color: #9aa1ad; }
/* Marcador do pico próximo: bolinha na COR DO SCORE (vem inline) + borda branca. */
.wv-nearby-pin__dot { display: block; width: 20px; height: 20px; border-radius: 50%; background: #9ca3af; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
/* Alfinete (pin) do pico principal/favorito. */
.wv-nearby-pinmark { display: block; filter: drop-shadow(0 3px 4px rgba(0,0,0,0.35)); }
/* No dashboard o "Próximos" é full-width (sem o card padrão). */
.wv-dash__panel[data-panel="near"] { padding: 0; }
/* Marcador de centro do mapa Próximos (estrela vermelha = pico principal; alvo azul = ponto escolhido) */
.wv-nearby-center { color: #fff; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.wv-nearby-center--main { background: #fe0000; font-size: 16px; }
.wv-nearby-center--custom { background: #2563eb; font-size: 15px; }
