/* =========================================================
   Rifa Livre — UI Premium SaaS (v3)
   Paleta: azul + branco. Somente estilos — nenhuma classe,
   estrutura ou fluxo foi alterado.
   ========================================================= */

.rifa-livre,
.rifa-lista,
.rifa-consulta,
.rifa-compradores {
	--rifa-primaria: #2563eb;
	--rifa-primaria-forte: #1d4ed8;
	--rifa-primaria-suave: #3b82f6;
	--rifa-livre: #f4f7fe;
	--rifa-selecionada: #2563eb;
	--rifa-reservada: #f59e0b;
	--rifa-paga: #64748b;

	--rifa-tinta: #0b1b3a;
	--rifa-tinta-2: #44557a;
	--rifa-tinta-3: #8fa0c2;
	--rifa-superficie: #ffffff;
	--rifa-fundo: #f6f9ff;
	--rifa-borda: #e3eaf7;
	--rifa-borda-forte: #cfddf3;

	--rifa-raio: 18px;
	--rifa-raio-sm: 12px;

	--rifa-sombra-sm: 0 1px 2px rgba(15, 45, 105, .05), 0 1px 4px rgba(15, 45, 105, .04);
	--rifa-sombra: 0 12px 32px -14px rgba(30, 64, 175, .22), 0 2px 8px rgba(15, 45, 105, .05);
	--rifa-sombra-lg: 0 32px 64px -24px rgba(15, 45, 105, .4);
	--rifa-anel: 0 0 0 4px color-mix(in srgb, var(--rifa-primaria) 16%, transparent);
	--rifa-transicao: 180ms cubic-bezier(.22, 1, .36, 1);

	font-family: inherit;
	color: var(--rifa-tinta);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.rifa-livre {
	max-width: 1080px;
	margin: 0 auto;
	line-height: 1.55;
}

.rifa-livre *,
.rifa-lista *,
.rifa-consulta * { box-sizing: border-box; }

/* ---------------- Cabeçalho / hero ---------------- */

.rifa-cabecalho {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: 30px;
	align-items: center;
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(140% 120% at 100% 0%, color-mix(in srgb, var(--rifa-primaria) 12%, transparent) 0%, transparent 55%),
		radial-gradient(120% 160% at 0% 100%, color-mix(in srgb, var(--rifa-primaria-suave) 7%, transparent) 0%, transparent 50%),
		linear-gradient(180deg, #ffffff, #fbfdff);
	border: 1px solid var(--rifa-borda);
	border-radius: calc(var(--rifa-raio) + 8px);
	box-shadow: var(--rifa-sombra);
	padding: 28px;
	margin-bottom: 24px;
}

.rifa-cabecalho::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--rifa-primaria-forte), var(--rifa-primaria-suave), #93c5fd);
}

@media (max-width: 760px) {
	.rifa-cabecalho { grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 20px; }
}

.rifa-imagem {
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--rifa-raio);
	object-fit: cover;
	box-shadow: 0 16px 32px -16px rgba(30, 64, 175, .35);
	border: 1px solid var(--rifa-borda);
	background: var(--rifa-fundo);
}

.rifa-titulo {
	margin: 0 0 10px;
	font-size: clamp(1.55rem, 1.1rem + 1.7vw, 2.2rem);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.12;
	background: linear-gradient(120deg, var(--rifa-tinta) 40%, var(--rifa-primaria-forte));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.rifa-descricao { color: var(--rifa-tinta-2); font-size: .95rem; margin-bottom: 6px; }
.rifa-descricao p { margin: 0 0 8px; }

.rifa-preco {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	margin: 10px 0 8px;
	padding: 8px 16px;
	border-radius: 999px;
	font-weight: 800;
	font-size: 1.05rem;
	font-variant-numeric: tabular-nums;
	color: var(--rifa-primaria-forte);
	background: linear-gradient(180deg, #eef4ff, #e3edff);
	border: 1px solid #c8dbfb;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.rifa-data {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .85rem;
	color: var(--rifa-tinta-2);
	margin: 0 0 14px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--rifa-fundo);
	border: 1px solid var(--rifa-borda);
}

.rifa-progresso {
	background: #e4ecf9;
	border-radius: 999px;
	height: 12px;
	overflow: hidden;
	max-width: 520px;
	box-shadow: inset 0 1px 3px rgba(15, 45, 105, .12);
}

.rifa-progresso span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--rifa-primaria-suave), var(--rifa-primaria-forte));
	box-shadow: 0 0 14px color-mix(in srgb, var(--rifa-primaria) 50%, transparent);
	transition: width 600ms cubic-bezier(.22, 1, .36, 1);
	position: relative;
}

.rifa-progresso span::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .35), transparent 55%);
}

.rifa-progresso-texto {
	font-size: .82rem;
	margin: 8px 0 0;
	color: var(--rifa-tinta-2);
	font-weight: 600;
	letter-spacing: .01em;
}

/* ---------------- Avisos / resultado ---------------- */

.rifa-aviso,
.rifa-resultado {
	border-radius: var(--rifa-raio-sm);
	padding: 14px 18px;
	margin: 14px 0;
	font-size: .93rem;
	border: 1px solid #fde6c4;
	background: linear-gradient(180deg, #fffdf7, #fff8ec);
	color: #8a4b08;
	box-shadow: var(--rifa-sombra-sm);
}

.rifa-resultado {
	border-color: #c8dbfb;
	background: linear-gradient(180deg, #f2f7ff, #e6efff);
	color: var(--rifa-primaria-forte);
}

/* ---------------- Controles ---------------- */

.rifa-aleatorias {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin: 18px 0 14px;
	padding: 14px 16px;
	background: var(--rifa-superficie);
	border: 1px solid var(--rifa-borda);
	border-radius: var(--rifa-raio);
	box-shadow: var(--rifa-sombra-sm);
}

.rifa-aleatorias > span {
	font-weight: 700;
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--rifa-tinta-3);
	margin-right: 4px;
}

.rifa-aleatorias button,
.rifa-paginacao button {
	border: 1px solid var(--rifa-borda-forte);
	background: linear-gradient(180deg, #ffffff, #f6f9ff);
	color: var(--rifa-tinta);
	border-radius: 10px;
	padding: 9px 16px;
	cursor: pointer;
	font-weight: 700;
	font-size: .88rem;
	font-family: inherit;
	font-variant-numeric: tabular-nums;
	transition: var(--rifa-transicao);
	box-shadow: var(--rifa-sombra-sm);
}

.rifa-aleatorias button:hover:not(:disabled),
.rifa-paginacao button:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--rifa-primaria) 50%, transparent);
	color: var(--rifa-primaria-forte);
	transform: translateY(-1px);
	box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--rifa-primaria) 45%, transparent);
}

.rifa-aleatorias button:active:not(:disabled),
.rifa-paginacao button:active:not(:disabled) { transform: translateY(0); }

.rifa-aleatorias button:focus-visible,
.rifa-paginacao button:focus-visible,
.rifa-aba:focus-visible,
.rifa-cota:focus-visible,
.rifa-campo:focus-visible,
.rifa-metodo:focus-visible,
.rifa-btn-finalizar:focus-visible,
.rifa-btn-pagar:focus-visible {
	outline: none;
	box-shadow: var(--rifa-anel);
}

.rifa-btn-limpar { margin-left: auto; color: var(--rifa-tinta-2) !important; }

/* ---------------- Abas / filtros ---------------- */

.rifa-abas {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-bottom: 14px;
	padding: 6px;
	background: var(--rifa-fundo);
	border: 1px solid var(--rifa-borda);
	border-radius: 999px;
	width: fit-content;
	max-width: 100%;
}

.rifa-aba {
	border: 0;
	background: transparent;
	color: var(--rifa-tinta-2);
	border-radius: 999px;
	padding: 8px 18px;
	cursor: pointer;
	font-size: .86rem;
	font-weight: 700;
	font-family: inherit;
	transition: var(--rifa-transicao);
}

.rifa-aba:hover { color: var(--rifa-primaria-forte); }

.rifa-aba.is-ativa {
	background: var(--rifa-superficie);
	color: var(--rifa-primaria-forte);
	box-shadow: var(--rifa-sombra-sm);
}

/* ---------------- Grade de cotas ---------------- */

.rifa-grade {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
	gap: 10px;
	margin-bottom: 18px;
	padding: 18px;
	background:
		radial-gradient(120% 100% at 50% 0%, #fbfdff 0%, var(--rifa-superficie) 60%);
	border: 1px solid var(--rifa-borda);
	border-radius: var(--rifa-raio);
	box-shadow: var(--rifa-sombra-sm);
	min-height: 120px;
}

.rifa-carregando {
	grid-column: 1 / -1;
	text-align: center;
	color: var(--rifa-tinta-3);
	font-weight: 600;
	padding: 28px 0;
	margin: 0;
}

.rifa-cota {
	border: 1px solid var(--rifa-borda-forte);
	background: linear-gradient(180deg, #ffffff, var(--rifa-livre));
	color: var(--rifa-tinta);
	border-radius: 12px;
	padding: 12px 4px;
	font-size: .84rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	font-family: inherit;
	cursor: pointer;
	transition: transform var(--rifa-transicao), box-shadow var(--rifa-transicao), background var(--rifa-transicao), border-color var(--rifa-transicao);
}

.rifa-cota:hover:not(:disabled) {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--rifa-primaria) 55%, transparent);
	color: var(--rifa-primaria-forte);
	box-shadow: 0 10px 20px -10px color-mix(in srgb, var(--rifa-primaria) 55%, transparent);
}

.rifa-cota.is-selecionada {
	background: linear-gradient(180deg,
		color-mix(in srgb, var(--rifa-selecionada) 75%, #ffffff),
		color-mix(in srgb, var(--rifa-selecionada) 88%, #0b1b3a));
	color: #fff;
	border-color: transparent;
	box-shadow: 0 12px 22px -10px color-mix(in srgb, var(--rifa-selecionada) 80%, transparent),
		inset 0 1px 0 rgba(255, 255, 255, .35);
	transform: translateY(-1px);
}

.rifa-cota--reservado {
	background: color-mix(in srgb, var(--rifa-reservada) 16%, #fff);
	border-color: color-mix(in srgb, var(--rifa-reservada) 40%, transparent);
	color: color-mix(in srgb, var(--rifa-reservada) 72%, #3a2503);
	cursor: not-allowed;
}

.rifa-cota--pago {
	background: color-mix(in srgb, var(--rifa-paga) 14%, #fff);
	border-color: color-mix(in srgb, var(--rifa-paga) 28%, transparent);
	color: color-mix(in srgb, var(--rifa-paga) 70%, #ffffff);
	cursor: not-allowed;
	text-decoration: line-through;
	text-decoration-thickness: 1px;
	opacity: .8;
}

.rifa-paginacao {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	margin-bottom: 22px;
	font-size: .88rem;
	color: var(--rifa-tinta-2);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.rifa-paginacao button:disabled { opacity: .45; cursor: not-allowed; }

/* ---------------- Carrinho fixo ---------------- */

.rifa-carrinho {
	position: sticky;
	bottom: 12px;
	z-index: 50;
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	background: linear-gradient(120deg,
		color-mix(in srgb, var(--rifa-primaria) 40%, #0b1b3a) 0%,
		color-mix(in srgb, var(--rifa-primaria) 85%, #0b1b3a) 55%,
		var(--rifa-primaria) 100%);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--rifa-raio);
	padding: 16px 20px;
	box-shadow: 0 24px 48px -18px rgba(29, 78, 216, .55), inset 0 1px 0 rgba(255, 255, 255, .18);
}

.rifa-carrinho-info { flex: 1; min-width: 170px; font-size: .95rem; }
.rifa-carrinho-qtd { font-weight: 800; letter-spacing: -.01em; }

.rifa-carrinho-numeros {
	display: block;
	opacity: .72;
	font-size: .75rem;
	word-break: break-word;
	margin-top: 2px;
	max-height: 34px;
	overflow: hidden;
	font-variant-numeric: tabular-nums;
}

.rifa-carrinho-total {
	font-size: 1.4rem;
	font-weight: 800;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

.rifa-btn-finalizar,
.rifa-btn-pagar,
.rifa-btn-copiar,
.rifa-btn-link {
	background: linear-gradient(180deg, var(--rifa-primaria-suave), var(--rifa-primaria-forte));
	color: #fff;
	border: 0;
	border-radius: 12px;
	padding: 13px 22px;
	font-weight: 800;
	font-size: .95rem;
	font-family: inherit;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	transition: var(--rifa-transicao);
	box-shadow: 0 14px 26px -12px color-mix(in srgb, var(--rifa-primaria) 90%, transparent),
		inset 0 1px 0 rgba(255, 255, 255, .3);
}

.rifa-carrinho .rifa-btn-finalizar {
	background: linear-gradient(180deg, #ffffff, #eaf1ff);
	color: var(--rifa-primaria-forte);
	box-shadow: 0 12px 24px -10px rgba(9, 25, 70, .5), inset 0 1px 0 #fff;
}

.rifa-btn-finalizar:hover:not(:disabled),
.rifa-btn-pagar:hover:not(:disabled),
.rifa-btn-copiar:hover,
.rifa-btn-link:hover { transform: translateY(-1px); filter: brightness(1.04); }

.rifa-btn-finalizar:hover:not(:disabled),
.rifa-btn-pagar:hover:not(:disabled),
.rifa-btn-copiar:hover { color: #fff; }

.rifa-carrinho .rifa-btn-finalizar:hover:not(:disabled) { color: var(--rifa-primaria-forte); }
.rifa-btn-link:hover { color: #fff; }

.rifa-btn-finalizar:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; transform: none; }

/* ---------------- Modal / checkout ---------------- */

.rifa-modal {
	position: fixed;
	inset: 0;
	background: rgba(10, 25, 60, .55);
	backdrop-filter: blur(8px) saturate(1.1);
	-webkit-backdrop-filter: blur(8px) saturate(1.1);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
	padding: 16px;
	animation: rifa-fade 200ms ease both;
}

.rifa-modal[hidden] { display: none; }

.rifa-modal-caixa {
	background: var(--rifa-superficie);
	color: var(--rifa-tinta);
	border-radius: 24px;
	padding: 30px 28px 28px;
	width: 100%;
	max-width: 480px;
	max-height: 90vh;
	overflow: auto;
	position: relative;
	box-shadow: var(--rifa-sombra-lg);
	border: 1px solid var(--rifa-borda);
	animation: rifa-sobe 280ms cubic-bezier(.22, 1, .36, 1) both;
}

.rifa-modal-caixa::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	border-radius: 24px 24px 0 0;
	background: linear-gradient(90deg, var(--rifa-primaria-forte), var(--rifa-primaria-suave), #93c5fd);
}

@keyframes rifa-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rifa-sobe { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }

.rifa-modal-fechar {
	position: absolute;
	top: 14px;
	right: 14px;
	border: 1px solid var(--rifa-borda);
	background: var(--rifa-fundo);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	color: var(--rifa-tinta-2);
	transition: var(--rifa-transicao);
}

.rifa-modal-fechar:hover { background: #e8effc; color: var(--rifa-primaria-forte); transform: rotate(90deg); }

.rifa-modal-caixa h3 {
	margin: 6px 0 14px;
	font-size: 1.08rem;
	font-weight: 800;
	letter-spacing: -.015em;
}

.rifa-modal-caixa .rifa-etapa h3 + h3 { margin-top: 22px; }

.rifa-modal-caixa label {
	display: block;
	font-size: .76rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--rifa-tinta-3);
	margin-bottom: 12px;
}

.rifa-campo {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--rifa-borda-forte);
	border-radius: 12px;
	font-size: .98rem;
	font-family: inherit;
	font-weight: 500;
	color: var(--rifa-tinta);
	background: var(--rifa-fundo);
	margin-top: 6px;
	text-transform: none;
	letter-spacing: normal;
	transition: var(--rifa-transicao);
}

.rifa-campo::placeholder { color: var(--rifa-tinta-3); }

.rifa-campo:focus {
	background: var(--rifa-superficie);
	border-color: color-mix(in srgb, var(--rifa-primaria) 60%, transparent);
	outline: none;
	box-shadow: var(--rifa-anel);
}

.rifa-metodos { display: flex; gap: 10px; margin-bottom: 16px; }

.rifa-metodo {
	flex: 1;
	border: 1.5px solid var(--rifa-borda-forte);
	background: var(--rifa-superficie);
	border-radius: 14px;
	padding: 13px 10px;
	cursor: pointer;
	font-weight: 700;
	font-size: .93rem;
	font-family: inherit;
	color: var(--rifa-tinta-2);
	transition: var(--rifa-transicao);
}

.rifa-metodo:hover { border-color: color-mix(in srgb, var(--rifa-primaria) 45%, transparent); color: var(--rifa-primaria-forte); }

.rifa-metodo.is-ativa {
	border-color: var(--rifa-primaria);
	color: var(--rifa-primaria-forte);
	background: linear-gradient(180deg, #f0f6ff, #e6efff);
	box-shadow: var(--rifa-anel);
}

.rifa-cartao {
	min-height: 54px;
	position: relative;
}

.rifa-cartao.is-carregando::before {
	content: "Carregando formulário seguro do cartão…";
	display: block;
	padding: 16px;
	margin-bottom: 10px;
	border: 1px solid var(--rifa-borda);
	border-radius: 12px;
	background: var(--rifa-fundo);
	color: var(--rifa-tinta-2);
	font-size: .86rem;
	font-weight: 600;
	text-align: center;
}

.rifa-erro { color: #c2410c; font-size: .87rem; min-height: 20px; margin: 4px 0 10px; font-weight: 600; }

.rifa-btn-pagar { width: 100%; }

.rifa-pix-qr {
	display: block;
	margin: 0 auto 14px;
	max-width: 232px;
	border-radius: 16px;
	padding: 10px;
	background: #fff;
	border: 1px solid var(--rifa-borda);
	box-shadow: var(--rifa-sombra-sm);
}

.rifa-pix-codigo {
	width: 100%;
	font-size: .78rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	padding: 12px;
	border-radius: 12px;
	border: 1px solid var(--rifa-borda-forte);
	background: var(--rifa-fundo);
	resize: vertical;
	color: var(--rifa-tinta-2);
	margin-bottom: 12px;
}

.rifa-btn-copiar { width: 100%; }

.rifa-pix-status {
	font-size: .85rem;
	color: var(--rifa-tinta-2);
	margin-top: 14px;
	display: flex;
	align-items: center;
	gap: 8px;
	justify-content: center;
	font-weight: 600;
}

.rifa-pix-status::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--rifa-primaria-suave);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--rifa-primaria) 60%, transparent);
	animation: rifa-pulso 1.6s infinite;
}

@keyframes rifa-pulso {
	70% { box-shadow: 0 0 0 10px transparent; }
	100% { box-shadow: 0 0 0 0 transparent; }
}

.rifa-etapa-ok { text-align: center; }
.rifa-etapa-ok h3 { font-size: 1.3rem; }
.rifa-ok-numeros {
	display: inline-block;
	margin-top: 4px;
	color: var(--rifa-primaria-forte);
	font-variant-numeric: tabular-nums;
}

/* ---------------- Lista de rifas ---------------- */

.rifa-lista {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 22px;
}

.rifa-card {
	border: 1px solid var(--rifa-borda);
	border-radius: var(--rifa-raio);
	padding: 16px;
	background: var(--rifa-superficie);
	box-shadow: var(--rifa-sombra-sm);
	transition: var(--rifa-transicao);
	display: flex;
	flex-direction: column;
	position: relative;
	overflow: hidden;
}

.rifa-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	background: linear-gradient(90deg, var(--rifa-primaria-forte), var(--rifa-primaria-suave));
	opacity: 0;
	transition: var(--rifa-transicao);
}

.rifa-card:hover { transform: translateY(-4px); box-shadow: var(--rifa-sombra); border-color: var(--rifa-borda-forte); }
.rifa-card:hover::before { opacity: 1; }

.rifa-card img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--rifa-raio-sm);
	margin-bottom: 12px;
	background: var(--rifa-fundo);
}

.rifa-card h3 { margin: 0 0 6px; font-size: 1.05rem; font-weight: 800; letter-spacing: -.015em; }
.rifa-card .rifa-btn-link { margin-top: auto; text-align: center; }

/* ---------------- Tabela de compradores ---------------- */

.rifa-compradores {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: .9rem;
	background: var(--rifa-superficie);
	border: 1px solid var(--rifa-borda);
	border-radius: var(--rifa-raio);
	overflow: hidden;
	box-shadow: var(--rifa-sombra-sm);
}

.rifa-compradores th {
	background: linear-gradient(180deg, #f0f5ff, #e9f1fe);
	font-size: .74rem;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--rifa-tinta-2);
}

.rifa-compradores th,
.rifa-compradores td {
	border-bottom: 1px solid var(--rifa-borda);
	padding: 12px 16px;
	text-align: left;
}

.rifa-compradores tbody tr:last-child td { border-bottom: 0; }
.rifa-compradores tbody tr:hover td { background: color-mix(in srgb, var(--rifa-primaria) 5%, #fff); }

body.rifa-modal-aberto { overflow: hidden; }

@media (max-width: 480px) {
	.rifa-grade { grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: 8px; padding: 12px; }
	.rifa-carrinho { padding: 14px; }
	.rifa-carrinho-total { font-size: 1.2rem; }
	.rifa-btn-finalizar { width: 100%; }
	.rifa-modal-caixa { padding: 26px 18px; }
}

/* ---------------- Consulta de cotas ---------------- */

.rifa-consulta {
	border: 1px solid var(--rifa-borda);
	border-radius: calc(var(--rifa-raio) + 6px);
	padding: 26px;
	background:
		radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--rifa-primaria) 9%, transparent) 0%, transparent 55%),
		linear-gradient(180deg, #ffffff, #fbfdff);
	box-shadow: var(--rifa-sombra);
	max-width: 760px;
}

.rifa-consulta-titulo { margin: 0 0 16px; font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; }
.rifa-consulta-form { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.rifa-consulta-form .rifa-campo { flex: 1 1 240px; margin-top: 0; }
.rifa-consulta-form .rifa-btn-finalizar { flex: 0 0 auto; }

.rifa-consulta-item { border-top: 1px solid var(--rifa-borda); padding: 18px 0 6px; }
.rifa-consulta-item h4 { margin: 0 0 4px; font-size: 1rem; font-weight: 800; }
.rifa-consulta-meta { font-size: .82rem; color: var(--rifa-tinta-2); margin: 0 0 10px; }
.rifa-consulta-numeros { display: flex; flex-wrap: wrap; gap: 6px; }

.rifa-consulta-numero {
	background: linear-gradient(180deg, var(--rifa-primaria-suave), var(--rifa-primaria-forte));
	color: #fff;
	border-radius: 8px;
	padding: 5px 12px;
	font-size: .82rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	box-shadow: 0 8px 16px -8px color-mix(in srgb, var(--rifa-primaria) 85%, transparent),
		inset 0 1px 0 rgba(255, 255, 255, .3);
}

/* ---------------- Top compradores ---------------- */

.rifa-top-compradores {
	max-width: 720px;
	border: 1px solid var(--rifa-borda);
	border-radius: calc(var(--rifa-raio) + 8px);
	padding: 28px;
	background:
		radial-gradient(140% 120% at 0% 0%, color-mix(in srgb, var(--rifa-primaria) 10%, transparent) 0%, transparent 55%),
		linear-gradient(180deg, #ffffff, #fbfdff);
	box-shadow: var(--rifa-sombra);
}

.rifa-top-header {
	text-align: center;
	margin-bottom: 22px;
}

.rifa-top-titulo {
	margin: 0 0 4px;
	font-size: clamp(1.35rem, 1rem + 1.2vw, 1.8rem);
	font-weight: 800;
	letter-spacing: -.02em;
	background: linear-gradient(120deg, var(--rifa-tinta) 40%, var(--rifa-primaria-forte));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

.rifa-top-subtitulo {
	margin: 0;
	font-size: .92rem;
	color: var(--rifa-tinta-2);
}

.rifa-top-lista {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.rifa-top-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	background: var(--rifa-superficie);
	border: 1px solid var(--rifa-borda);
	border-radius: var(--rifa-raio-sm);
	box-shadow: var(--rifa-sombra-sm);
	transition: transform var(--rifa-transicao), box-shadow var(--rifa-transicao);
}

.rifa-top-item:hover {
	transform: translateY(-2px);
	box-shadow: var(--rifa-sombra);
}

.rifa-top-posicao {
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	font-weight: 900;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
	background: var(--rifa-fundo);
	color: var(--rifa-tinta-2);
	border: 1px solid var(--rifa-borda);
}

.rifa-top-pos-1 .rifa-top-posicao {
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	color: #fff;
	border-color: #f59e0b;
	box-shadow: 0 8px 16px -6px rgba(245, 158, 11, .35);
}

.rifa-top-pos-2 .rifa-top-posicao {
	background: linear-gradient(135deg, #e2e8f0, #94a3b8);
	color: #fff;
	border-color: #94a3b8;
	box-shadow: 0 8px 16px -6px rgba(148, 163, 184, .35);
}

.rifa-top-pos-3 .rifa-top-posicao {
	background: linear-gradient(135deg, #fdba74, #f97316);
	color: #fff;
	border-color: #f97316;
	box-shadow: 0 8px 16px -6px rgba(249, 115, 22, .35);
}

.rifa-top-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.rifa-top-nome {
	font-size: 1rem;
	font-weight: 800;
	color: var(--rifa-tinta);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.rifa-top-email {
	font-size: .8rem;
	color: var(--rifa-tinta-2);
}

.rifa-top-stats {
	flex: 0 0 auto;
	text-align: right;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.rifa-top-cotas {
	font-size: .85rem;
	font-weight: 700;
	color: var(--rifa-primaria-forte);
}

.rifa-top-valor {
	font-size: .78rem;
	color: var(--rifa-tinta-2);
	font-weight: 600;
}

@media (max-width: 480px) {
	.rifa-top-compradores { padding: 20px; }
	.rifa-top-item { gap: 10px; padding: 12px; }
	.rifa-top-posicao { flex: 0 0 36px; width: 36px; height: 36px; font-size: .9rem; }
	.rifa-top-nome { font-size: .92rem; }
}

@media (prefers-reduced-motion: reduce) {
	.rifa-livre *, .rifa-modal * { animation: none !important; transition: none !important; }
}

