/*
 * Cadastro novo e ativação da conta (Prompt Criacao de Conta.md, fases 1 e 2): telas account/signup, welcome, plan e email_confirmed.
 * Carregado DEPOIS de assets/css/auth/auth.css: usa só as variáveis dele (--auth-*: cor da família por html[data-family], claro/escuro pelo
 * sistema). Nada de cor fixa além das de estado (sucesso), que também têm a versão escura.
 */
:root {
	--ac-ok: #1e7a45;
	--ac-ok-bg: #e7f5ec;
	--ac-soft: color-mix(in srgb, var(--auth-accent) 9%, var(--auth-surface));
}
@media (prefers-color-scheme: dark) {
	:root {
		--ac-ok: #5cd08d;
		--ac-ok-bg: #133022;
		--ac-soft: color-mix(in srgb, var(--auth-accent) 16%, var(--auth-surface));
	}
}

/* ---------- cadastro ---------- */
.auth--signup .auth-card--wide {
	max-width: 440px;
}
.ac-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: -8px 0 20px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--ac-soft);
	color: var(--auth-text);
	font-size: 13px;
	font-weight: 600;
}
.ac-chip i {
	color: var(--auth-accent);
}
.auth--signup .auth-sso {
	margin-bottom: 4px;
}
.auth--signup .auth-sso .auth-btn {
	width: 100%;
}
.ac-hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.ac-help {
	margin: 0;
	color: var(--auth-muted);
	font-size: 13px;
}
.ac-field-error {
	margin: 2px 0 0;
	color: var(--auth-danger);
	font-size: 13px;
	font-weight: 600;
}
.auth-input[aria-invalid="true"] {
	border-color: var(--auth-danger);
}
.ac-pass-wrap .auth-input {
	padding-right: 92px;
}
.ac-pass-wrap .ac-copy {
	right: 44px;
}
.ac-rules {
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
	color: var(--auth-muted);
}
@media (min-width: 480px) {
	.ac-rules {
		grid-template-columns: 1fr 1fr;
		column-gap: 12px;
	}
}
.ac-rule {
	display: flex;
	align-items: flex-start;
	gap: 7px;
	line-height: 1.35;
}
.ac-rule i {
	margin-top: 2px;
	font-size: 12px;
}
.ac-rule.is-ok {
	color: var(--ac-ok);
}
.ac-rule.is-missing {
	color: var(--auth-text);
}
.ac-rule.is-missing i {
	color: var(--auth-muted);
}
.ac-legal {
	margin: 0;
	color: var(--auth-muted);
	font-size: 12.5px;
	line-height: 1.45;
}
.ac-muted {
	color: var(--auth-muted);
	font-weight: 500;
}
.ac-aside-tagline {
	margin: 28px 0 0;
	opacity: 0.8;
	font-size: 15px;
}
form[aria-busy="true"] {
	cursor: progress;
}

/* intl-tel-input dentro do campo do auth.css */
.auth--signup .iti {
	display: block;
	width: 100%;
}
.auth--signup .iti .auth-input {
	padding-left: 96px;
}
.auth--signup .iti__selected-country {
	border-radius: 10px 0 0 10px;
}
/* o CSS do plugin deixa a lista "fixed" para as telas com modal e tabela; aqui ela sairia de baixo da busca e ficaria longe do campo */
.auth--signup .iti__country-list {
	position: static !important;
}
.auth--signup .iti__dropdown-content {
	border-radius: 10px;
	background: var(--auth-surface);
	color: var(--auth-text);
	border-color: var(--auth-border);
}
.auth--signup .iti__search-input {
	background: var(--auth-input-bg);
	color: var(--auth-text);
}
.auth--signup .iti__country.iti__highlight {
	background: var(--ac-soft);
}
.auth--signup .iti__selected-dial-code,
.auth--signup .iti__arrow {
	color: var(--auth-text);
}

/* aviso curto */
.ac-toast {
	position: fixed;
	left: 50%;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 1000;
	max-width: min(92vw, 460px);
	padding: 12px 18px;
	border-radius: 12px;
	background: var(--auth-text);
	color: var(--auth-surface);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
	font-size: 14px;
	transform: translateX(-50%);
	transition: opacity 0.4s, transform 0.4s;
}
.ac-toast.is-out {
	opacity: 0;
	transform: translate(-50%, 8px);
}

/* ---------- telas logadas (boas-vindas, plano) e confirmação de e-mail ---------- */
body.ac-page {
	background: var(--auth-bg);
	color: var(--auth-text);
	font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.ac-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1080px;
	margin: 0 auto;
	padding: 20px 20px 0;
}
.ac-top img {
	max-width: 160px;
	max-height: 44px;
	object-fit: contain;
}
.ac-top__right {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--auth-muted);
	font-size: 14px;
}
.ac-wrap {
	max-width: 1080px;
	margin: 0 auto;
	padding: 28px 20px calc(48px + env(safe-area-inset-bottom, 0px));
}
.ac-wrap--narrow {
	max-width: 620px;
}
.ac-h1 {
	margin: 0 0 6px;
	font-size: 28px;
	font-weight: 750;
	letter-spacing: -0.015em;
}
.ac-lead {
	margin: 0 0 24px;
	color: var(--auth-muted);
	font-size: 16px;
}
.ac-card {
	padding: 22px;
	border: 1px solid var(--auth-border);
	border-radius: 16px;
	background: var(--auth-surface);
}
.ac-card + .ac-card {
	margin-top: 16px;
}
.ac-card h2 {
	margin: 0 0 4px;
	font-size: 18px;
}

/* boas-vindas */
.ac-progress {
	height: 6px;
	margin: 0 0 22px;
	border-radius: 999px;
	background: var(--auth-border);
	overflow: hidden;
}
.ac-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--auth-accent);
	transition: width 0.3s;
}
.ac-q-meta {
	margin: 0 0 6px;
	color: var(--auth-muted);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ac-q-title {
	margin: 0 0 18px;
	font-size: 22px;
	font-weight: 700;
}
.ac-options {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}
@media (min-width: 560px) {
	.ac-options {
		grid-template-columns: 1fr 1fr;
	}
}
.ac-option {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 54px;
	padding: 12px 16px;
	border: 1.5px solid var(--auth-border);
	border-radius: 12px;
	background: var(--auth-surface);
	color: var(--auth-text);
	font: inherit;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}
.ac-option:hover {
	border-color: var(--auth-accent);
}
.ac-option[aria-pressed="true"] {
	border-color: var(--auth-accent);
	background: var(--ac-soft);
}
.ac-option__mark {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 22px;
	height: 22px;
	border: 1.5px solid var(--auth-border);
	border-radius: 50%;
	font-size: 12px;
	color: transparent;
}
.ac-option[data-multiple] .ac-option__mark {
	border-radius: 6px;
}
.ac-option[aria-pressed="true"] .ac-option__mark {
	border-color: var(--auth-accent);
	background: var(--auth-accent);
	color: var(--auth-accent-text);
}
.ac-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 24px;
}
.ac-actions .auth-btn {
	width: auto;
	min-width: 140px;
	padding: 0 22px;
}

/* plano */
.ac-periods {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 20px;
	padding: 4px;
	border: 1px solid var(--auth-border);
	border-radius: 12px;
	background: var(--auth-surface);
}
.ac-periods button {
	padding: 8px 14px;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: var(--auth-text);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.ac-periods button[aria-pressed="true"] {
	background: var(--auth-accent);
	color: var(--auth-accent-text);
}
.ac-periods small {
	margin-left: 6px;
	font-weight: 700;
	opacity: 0.85;
}
.ac-plans {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 330px));
	gap: 14px;
}
.ac-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px;
	border: 1.5px solid var(--auth-border);
	border-radius: 16px;
	background: var(--auth-surface);
}
.ac-plan.is-chosen {
	border-color: var(--auth-accent);
	box-shadow: 0 0 0 4px var(--auth-focus);
}
.ac-plan__badge {
	position: absolute;
	top: -11px;
	left: 18px;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--auth-accent);
	color: var(--auth-accent-text);
	font-size: 12px;
	font-weight: 700;
}
.ac-plan__name {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
}
.ac-plan__desc {
	margin: 0;
	color: var(--auth-muted);
	font-size: 13.5px;
}
.ac-plan__price {
	margin: 4px 0 0;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.02em;
}
.ac-plan__price small {
	color: var(--auth-muted);
	font-size: 14px;
	font-weight: 600;
}
.ac-plan ul {
	display: grid;
	gap: 6px;
	margin: 4px 0 8px;
	padding: 0;
	list-style: none;
	font-size: 13.5px;
}
.ac-plan li {
	display: flex;
	gap: 8px;
}
.ac-plan li i {
	margin-top: 4px;
	color: var(--ac-ok);
	font-size: 11px;
}
.ac-plan .auth-btn {
	margin-top: auto;
}
.ac-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
@media (min-width: 640px) {
	.ac-grid {
		grid-template-columns: repeat(6, 1fr);
	}
	.ac-span-2 { grid-column: span 2; }
	.ac-span-3 { grid-column: span 3; }
	.ac-span-4 { grid-column: span 4; }
	.ac-span-6 { grid-column: span 6; }
}
.ac-summary {
	margin: 18px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--ac-soft);
	font-weight: 600;
}
.ac-banner {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}
.ac-banner > i {
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: var(--ac-soft);
	color: var(--auth-accent);
	font-size: 18px;
}
.ac-banner--ok > i {
	background: var(--ac-ok-bg);
	color: var(--ac-ok);
}
.ac-banner p {
	margin: 2px 0 0;
	color: var(--auth-muted);
}
.ac-banner .auth-btn {
	width: auto;
	padding: 0 18px;
}
.ac-inline-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}
.ac-inline-actions .auth-btn {
	width: auto;
	padding: 0 20px;
}
.ac-checking {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	color: var(--auth-muted);
	font-size: 14px;
}
.ac-section-title {
	margin: 28px 0 12px;
	font-size: 18px;
}
[aria-busy="true"] .ac-skeleton {
	min-height: 220px;
	border-radius: 16px;
	background: linear-gradient(90deg, var(--auth-surface), var(--ac-soft), var(--auth-surface));
	background-size: 200% 100%;
	animation: ac-shimmer 1.2s infinite;
}
@keyframes ac-shimmer {
	to { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.ac-progress span,
	.ac-toast { transition: none; }
	[aria-busy="true"] .ac-skeleton { animation: none; }
}

/* painel da marca preso à tela enquanto o formulário (mais longo que o do login) rola */
@media (min-width: 992px) {
	.auth--signup .auth-aside {
		position: sticky;
		top: 0;
		align-self: start;
		height: 100vh;
		height: 100dvh;
		justify-content: center;
	}
}

.ac-q-title:focus {
	outline: none;
}
/* logo do topo: a mesma troca para fundo escuro do auth.css (.auth-logo), sem a margem do cartão de entrar */
.ac-top .auth-logo {
	margin: 0;
	max-height: 44px;
	max-width: 170px;
}

/* faixa da promoção na tela de cadastro (CC.26) */
.ac-promo {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: -6px 0 20px;
	padding: 12px 14px;
	border: 1.5px dashed var(--auth-accent);
	border-radius: 12px;
	background: var(--ac-soft);
	font-size: 14px;
}
.ac-promo i {
	margin-top: 3px;
	color: var(--auth-accent);
}
.ac-promo strong {
	margin-right: 4px;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 0.05em;
	color: var(--auth-accent);
}

/* "Tenho um código" (indicação ou promoção por escrito) */
.ac-code summary {
	cursor: pointer;
	color: var(--auth-accent);
	font-size: 14px;
	font-weight: 600;
}
.ac-code__row {
	display: flex;
	gap: 8px;
	margin-top: 8px;
}
.ac-code__msg {
	margin: 8px 0 0;
	font-size: 0.875rem;
	color: var(--auth-danger);
}
.ac-code__msg--ok {
	color: var(--ac-ok);
}
.ac-code__row .auth-btn {
	width: auto;
	padding: 0 16px;
}
