/* Contrato de assinatura (janela de aceite e pagina publica /contrato).
 * CSS proprio: o app.css e compilado fora do servidor. Cores pelas
 * variaveis do tema (claro e escuro). */
.contrato-janela { width: 100%; max-width: 46rem; max-height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.contrato-caixa { max-height: 55vh; overflow-y: auto; border: 1px solid rgb(var(--color-line)); border-radius: .375rem;
  background: rgb(var(--color-paper)); padding: .9rem 1rem; }
.contrato-texto { color: rgb(var(--color-ink) / .8); font-size: .78rem; line-height: 1.55; }
.contrato-texto h3 { font-family: Poppins, sans-serif; color: rgb(var(--color-ink)); font-size: .95rem; font-weight: 600; margin: 0; }
.contrato-texto .contrato-versao { color: rgb(var(--color-ink) / .5); margin: .15rem 0 .75rem; }
.contrato-texto h4 { color: rgb(var(--color-ink)); font-weight: 600; margin: .9rem 0 .25rem; }
.contrato-texto p { margin: .3rem 0; }
.contrato-aceite { display: flex; align-items: flex-start; gap: .6rem; font-size: .875rem; color: rgb(var(--color-ink)); cursor: pointer; }
.contrato-aceite input { margin-top: .2rem; flex-shrink: 0; width: 1rem; height: 1rem; }
.contrato-alerta { background: rgb(var(--color-warn-soft)); border-radius: .375rem; padding: .65rem .8rem; }
.contrato-alerta[hidden] { display: none; }
/* Pagina publica */
.contrato-pagina { min-height: 100vh; background: rgb(var(--color-paper)); padding: 2rem 1rem; }
.contrato-pagina-corpo { max-width: 46rem; margin: 0 auto; background: rgb(var(--color-surface)); border: 1px solid rgb(var(--color-line));
  border-radius: .5rem; padding: 1.75rem 1.5rem; }
.contrato-pagina .contrato-texto { font-size: .9rem; }
.contrato-pagina .contrato-texto h3 { font-size: 1.3rem; }
.contrato-rolagem { min-height: 0; }
/* Etapas da janela: contrato -> forma de pagamento -> dados do boleto */
.contrato-etapa { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
.contrato-etapa[hidden], [data-erro-campo][hidden], .contrato-erro-geral[hidden] { display: none; }
.contrato-formas { display: grid; gap: .75rem; }
@media (min-width: 640px) { .contrato-formas { grid-template-columns: 1fr 1fr; } }
.contrato-forma { display: flex; align-items: flex-start; gap: .75rem; text-align: left; padding: 1rem; border-radius: .5rem;
  border: 1px solid rgb(var(--color-line)); background: rgb(var(--color-surface)); color: rgb(var(--color-ink)); cursor: pointer; }
.contrato-forma:hover, .contrato-forma:focus-visible { border-color: rgb(var(--color-ink) / .35); background: rgb(var(--color-paper)); }
.contrato-forma strong { display: block; font-size: .9rem; }
.contrato-forma small { display: block; margin-top: .2rem; font-size: .78rem; color: rgb(var(--color-ink) / .55); }
.contrato-erro-geral { margin-bottom: .75rem; padding: .6rem .8rem; border-radius: .375rem; font-size: .85rem;
  background: rgb(var(--color-danger-soft)); color: #b42828; }
.contrato-maiusculas { text-transform: uppercase; }
/* Quadro Boletos */
.boleto-acao { padding: .3rem .6rem; font-size: .75rem; }
