.product-grid {display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.product-card {border:1px solid var(--border);border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:16px;min-width:0;}
.product-card p {color:var(--muted);}
.balance-number {font-size:var(--text-display-size);line-height:1.1;letter-spacing:-1px;overflow-wrap:anywhere;}
.balance-number small {font-size:var(--text-body-size);letter-spacing:0;}
.plan-option,.ledger-row {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);}
.plan-option small,.ledger-row small {display:block;color:var(--muted);}
.product-history {margin-top:24px;}
.product-form {display:flex;flex-direction:column;gap:16px;margin-top:24px;}
.pix-image {display:block;width:240px;max-width:100%;margin:24px auto;background:var(--fg);}
.pix-confirmado {margin:0 0 16px;padding:12px 16px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-weight:600;overflow-wrap:anywhere;}
/*
 * `.community-grid`/`.community-card` (mosaico de 3 colunas fixas, sem chip, sem busca)
 * viveram AQUI até 23/09/2026. O redesign da Comunidade (referência aprovada pelo dono)
 * trocou a marcação inteira — `.community-tile` no lugar de `.community-card`, chips reais,
 * busca, fileiras de workflow/criador — e essas duas classes não têm mais elemento nenhum
 * no HTML que as use. As regras novas ficam na folha principal do produto, porque a Início
 * também desenha cartão de Comunidade e não importa esta folha. Removidas daqui para não
 * colidir: as duas definiam o MESMO seletor com regra diferente, e a ORDEM de carga fazia a
 * antiga vencer — a grade de 3 colunas fixas (e 1 coluna abaixo de 700px, nunca 2) ignorava
 * por completo os chips/telas novas. Medido e corrigido nesta mesma fatia.
 */
.recent-filter {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.recent-filter label {margin:0;}.recent-filter input {width:auto;}
.preset-card {min-height:88px;}
.preset-card .preset-info {position:static;padding:16px;}
.price-note {margin-top:8px;color:var(--muted);}
@media(max-width:700px){.product-grid{grid-template-columns:1fr;}.product-card{padding:16px;}.ledger-row{flex-wrap:wrap;}.balance-number{font-size:var(--text-display-size);}}
.topup-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0}.topup-options button{display:grid;gap:8px;text-align:left;padding:16px;background:#1a1a1a;border:1px solid #303033;border-radius:8px;min-height:80px}.topup-options strong{font-size:var(--text-h3-size);font-weight:500}.topup-options small{font-size:var(--text-label-size);color:#b5b5ba}
.product-grid{align-items:start}.topup-options{margin:0}.promo-benefits{font-size:var(--text-body-sm-size)}.promo-benefits p{margin-top:12px}
/* Ganhos x Carteira (22/09): a seção de ganhos tem números próprios, separados do saldo para gerar. */
.product-earnings{margin-top:24px}.product-earnings h3{font-size:var(--text-h3-size);margin-top:8px}.balance-split{font-variant-numeric:tabular-nums}.earnings-origins{font-size:var(--text-body-sm-size)}.earnings-origins p{margin-top:12px}
/* Cobertura (§12.1/§12.3, 25/09/2026). UMA linha curta e a lista; §12.3 manda não empilhar cinco
   barras financeiras por cena. A régua só existe quando há consumo medido — item sem liberação e
   conta sem plano não desenham trilho nenhum, porque um trilho vazio se lê como franquia esgotada. */
.coverage{margin-top:24px;display:grid;gap:8px}
.coverage-plan{color:var(--muted);font-size:var(--text-body-sm-size)}
.coverage-headline{margin:0}
.coverage-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:16px}
.coverage-item{display:grid;gap:4px;font-variant-numeric:tabular-nums}
.coverage-item p{margin:0}
.coverage-bar-track{height:6px;border-radius:3px;background:#303033;overflow:hidden}
.coverage-bar-fill{display:block;height:100%;background:var(--accent,#7a7aff)}
.coverage-bar-pct,.coverage-origin{color:var(--muted);font-size:var(--text-label-size)}
.coverage-pending p,.coverage-unlimited p{color:var(--muted)}
.coverage-premium{font-variant-numeric:tabular-nums}
.coverage-renewal{display:grid;gap:4px}
.coverage-renewal p{margin:0;color:var(--muted);font-size:var(--text-body-sm-size)}
.coverage-renewal .coverage-renewal-alert{color:inherit;font-variant-numeric:tabular-nums}
/* UX3: preços e destinos do dinheiro usam os tokens do Hub. */
.pro-offer{background:var(--surface-1);border-color:var(--border-strong);border-radius:var(--radius-md)}
.pro-price{font-size:var(--text-display-size);font-weight:600;line-height:1.15;letter-spacing:-1px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pro-price small,.pro-activation h2 small{font-size:var(--text-body-size);font-weight:400;letter-spacing:0;color:var(--text-secondary)}
.pro-price>span{font-size:var(--text-h3-size);letter-spacing:0}
.pro-comparison{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);padding-block:var(--space-4);border-block:1px solid var(--border-soft)}
.pro-comparison h3{font-size:var(--text-body-size);margin-bottom:var(--space-2)}
.pro-comparison p,.pro-comparison li{font-size:var(--text-body-sm-size);color:var(--text-secondary);line-height:1.5}
.pro-comparison ul,.pro-activation ul{padding-left:var(--space-4)}
.topup-options button{background:var(--surface-1);border-color:var(--border-soft);border-radius:var(--radius-sm)}
.topup-options button:hover,.topup-options button[aria-pressed=true]{background:var(--accent-primary-soft);border-color:var(--accent-primary)}
.topup-options small{color:var(--text-secondary);line-height:1.4}
.earnings-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}
.earnings-metrics .product-card{background:var(--surface-1);border-radius:var(--radius-md);gap:var(--space-3)}
.earnings-metrics h2{font-size:var(--text-h2-size);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.referral-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-4)}
.referral-list li{display:grid;gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-soft);overflow-wrap:anywhere}
.referral-list span{font-size:var(--text-body-sm-size);color:var(--text-secondary)}
.earnings-rules summary{cursor:pointer;font-weight:500}.earnings-rules p{margin-top:var(--space-3)}
.earnings-detail>summary{cursor:pointer;padding:var(--space-4);border:1px solid var(--border-soft);border-radius:var(--radius-sm)}
.pro-activation{display:grid;gap:var(--space-4)}.pro-activation h2{font-size:var(--text-display-size);font-variant-numeric:tabular-nums}
@media(max-width:1000px){.earnings-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.pro-comparison{grid-template-columns:1fr}.earnings-metrics{gap:var(--space-2)}.earnings-metrics h2{font-size:var(--text-h3-size)}}
