/* ============================================================
   CONTA — Meus dados e Alterar senha
   ------------------------------------------------------------
   Mesma caixa do resto do sistema: 1140 no total, border-box,
   para o card nascer na mesma vertical da logo e do menu.
   ============================================================ */

#conteudo{display:block;max-width:1140px;margin:0 auto;padding:26px 24px 48px;box-sizing:border-box}
.ct-cab,.ct-card,.ct-grade,.ct-campo,.ct-nota,.ct-previa,.ct-regras,
.ct-campo input,.ct-campo select,.ct-btn{box-sizing:border-box}

/* ── cabeçalho da página ──────────────────────────────────── */
.ct-cab{margin:0 0 20px}
.ct-cab h2{font:700 24px 'Public Sans',sans-serif;letter-spacing:-.022em;color:var(--v2-ink)}
.ct-cab span{display:block;margin-top:5px;font:400 13.5px 'Public Sans',sans-serif;
  color:var(--v2-ink2);max-width:70ch}

/* ── o par card + coluna de apoio ─────────────────────────── */
.ct-duo{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:18px;align-items:start}
.ct-card{background:var(--v2-papel);border:1px solid var(--v2-hair);border-radius:14px;
  box-shadow:var(--v2-sh2);padding:24px 26px 26px}

/* ── campos ───────────────────────────────────────────────── */
.ct-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px 18px}
.ct-grade.estreita{grid-template-columns:minmax(0,300px)}
.ct-campo{min-width:0}
.ct-campo.larga{grid-column:1/-1}
.ct-campo label{display:block;margin:0 0 7px;
  font:600 11px 'Public Sans',sans-serif;letter-spacing:.11em;text-transform:uppercase;
  color:var(--v2-ink3)}
.ct-campo input,.ct-campo select{
  width:100%;height:44px;padding:0 13px;
  font:500 14px 'Public Sans',sans-serif;color:var(--v2-ink);
  background:var(--v2-papel);border:1px solid var(--v2-hair2);border-radius:var(--v2-r);
  box-shadow:var(--v2-sh1);outline:none;
  transition:border-color 160ms var(--v2-e),box-shadow 160ms var(--v2-e)}
.ct-campo select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:34px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0h10L5 6z' fill='%234F596B'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center}
.ct-campo input::placeholder{color:var(--v2-ink3);font-weight:400}
.ct-campo input:hover,.ct-campo select:hover{border-color:var(--v2-ink3)}
.ct-campo input:focus,.ct-campo select:focus{border-color:var(--v2-acc);
  box-shadow:0 0 0 3px rgba(14,99,97,.14)}
.ct-campo input[aria-invalid="true"]{border-color:var(--v2-neg)}
.ct-campo input[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(142,32,24,.14)}
/* valores numéricos alinham à direita, como no resto do sistema */
.ct-campo input.num{text-align:right;font-variant-numeric:tabular-nums}
.ct-erro{display:none;margin:6px 0 0;font:500 12px 'Public Sans',sans-serif;color:var(--v2-neg)}
.ct-campo[data-erro] .ct-erro{display:block}

/* campo de senha com o botão de revelar dentro */
.ct-senha{position:relative;display:flex;align-items:center}
.ct-senha input{padding-right:74px}
.ct-ver{position:absolute;right:6px;height:32px;padding:0 10px;border:none;border-radius:6px;
  background:none;cursor:pointer;
  font:600 11.5px 'Public Sans',sans-serif;color:var(--v2-ink3);
  transition:background 150ms var(--v2-e),color 150ms var(--v2-e)}
.ct-ver:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.ct-ver:focus-visible{outline:2px solid var(--v2-acc);outline-offset:1px}

/* ── ações ────────────────────────────────────────────────── */
.ct-acoes{display:flex;align-items:center;gap:14px;margin-top:22px;
  padding-top:20px;border-top:1px solid var(--v2-hair);flex-wrap:wrap}
.ct-btn{height:44px;min-width:200px;padding:0 26px;border:none;border-radius:var(--v2-r);
  font:600 13.5px 'Public Sans',sans-serif;letter-spacing:-.008em;cursor:pointer;
  background:var(--v2-acc);color:#fff;box-shadow:0 8px 18px -10px rgba(14,99,97,.7);
  transition:background 160ms var(--v2-e),transform 130ms var(--v2-e)}
.ct-btn:hover{background:#0B5250}
.ct-btn:active{transform:scale(.978)}
.ct-btn[disabled]{background:var(--v2-hair2);color:var(--v2-papel);
  box-shadow:none;cursor:not-allowed;transform:none}
.ct-aviso{font:500 12.5px 'Public Sans',sans-serif;color:var(--v2-ink2);
  opacity:0;transform:translateY(3px);
  transition:opacity 200ms var(--v2-e),transform 200ms var(--v2-e)}
.ct-aviso.ok{opacity:1;transform:none;color:var(--v2-acc)}
.ct-aviso.ruim{opacity:1;transform:none;color:var(--v2-neg)}

/* ── coluna de apoio ──────────────────────────────────────── */
.ct-lateral{display:grid;gap:14px}
.ct-previa,.ct-regras{background:var(--v2-papel);border:1px solid var(--v2-hair);
  border-radius:14px;box-shadow:var(--v2-sh1);padding:18px 20px}
.ct-previa h3,.ct-regras h3{font:600 10.5px 'Public Sans',sans-serif;letter-spacing:.12em;
  text-transform:uppercase;color:var(--v2-ink3);margin:0 0 4px}
.ct-previa > p,.ct-regras > p{font:400 12px/1.5 'Public Sans',sans-serif;
  color:var(--v2-ink3);margin:0 0 14px}

/* a prévia mostra o mesmo bloco que sai impresso na cotação */
.ct-assin{border-top:2px solid var(--v2-ink);padding-top:14px}
.ct-assin ul{list-style:none;margin:0;padding:0}
.ct-assin li{font:400 11.5px/1.65 'Public Sans',sans-serif;color:var(--v2-ink2);
  overflow-wrap:anywhere}
.ct-assin li:first-child{font:700 12.5px 'Public Sans',sans-serif;color:var(--v2-ink);
  letter-spacing:.02em;margin-bottom:3px}
.ct-assin li:empty{display:none}
.ct-assin .vazio{color:var(--v2-hair2);font-style:italic}

/* regras da senha: marcam sozinhas conforme o campo é preenchido */
.ct-regras ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ct-regras li{display:flex;align-items:flex-start;gap:9px;
  font:400 12.5px/1.45 'Public Sans',sans-serif;color:var(--v2-ink3);
  transition:color 160ms var(--v2-e)}
.ct-regras li::before{content:"";flex:0 0 auto;width:16px;height:16px;margin-top:1px;
  border:1px solid var(--v2-hair2);border-radius:50%;background:var(--v2-papel);
  transition:background 160ms var(--v2-e),border-color 160ms var(--v2-e)}
.ct-regras li[data-ok="1"]{color:var(--v2-ink)}
.ct-regras li[data-ok="1"]::before{
  background:var(--v2-acc) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8'><path d='M1 4l3 3 5-6' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") center no-repeat;
  border-color:var(--v2-acc)}

/* ── nota de rodapé do card ───────────────────────────────── */
.ct-nota{margin:18px 0 0;padding:13px 16px;border-radius:10px;
  background:var(--v2-sunken);border:1px solid var(--v2-hair);
  font:400 11.5px/1.6 'Public Sans',sans-serif;color:var(--v2-ink3)}
.ct-nota b{color:var(--v2-ink2);font-weight:600}





/* ── valores só de leitura (Meus dados) ────────────────────────
   Mesmo lugar do input, sem a moldura: deixa claro que é cadastro,
   não formulário. */
.ct-campo .ct-valor{margin:0;min-height:44px;display:flex;align-items:center;
  padding:0 2px;font:500 14.5px 'Public Sans',sans-serif;color:var(--v2-ink);
  border-bottom:1px solid var(--v2-hair);overflow-wrap:anywhere}
.ct-campo .ct-valor.vazio{color:var(--v2-ink3);font-style:italic;font-weight:400}
