/* ==========================================================================
   Protech — tela de cadastro de consultor (/cadastro)
   Identidade: preto / branco / Montserrat. Sem cor de acento.
   Escopo: tudo sob .pt-cad, para não vazar no template "pro" legado que ainda
   carrega bootstrap3 + style.css nesta página.
   ========================================================================== */

.pt-cad{
    --pt-preto:#0a0a0a;
    --pt-preto-hover:#333333;
    --pt-texto:#111111;
    --pt-texto-suave:#5c5c5c;
    --pt-texto-fraco:#8f8f8f;
    --pt-linha:#e2e2e2;
    --pt-linha-forte:#bdbdbd;
    --pt-fundo:#f4f4f4;
    --pt-fundo-suave:#fafafa;
    --pt-branco:#ffffff;
    --pt-erro:#b42318;
    --pt-erro-bg:#fef3f2;
    --pt-ok:#111111;
    --pt-raio:12px;
    --pt-raio-sm:9px;
    --pt-sombra:0 1px 2px rgba(0,0,0,.05), 0 8px 24px rgba(0,0,0,.06);
}

/* ---- reset do template legado dentro do nosso escopo ------------------- */
body.pt-cad-body{
    background:#f4f4f4 !important;
    font-family:'Montserrat','Helvetica Neue',Arial,sans-serif !important;
    color:#111111;
    margin:0;
}
body.pt-cad-body .page-container,
body.pt-cad-body .page-content,
body.pt-cad-body .content{
    background:transparent !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    min-height:0 !important;
}
.pt-cad, .pt-cad input, .pt-cad select, .pt-cad textarea, .pt-cad button{
    font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
}
.pt-cad *,
.pt-cad *::before,
.pt-cad *::after{ box-sizing:border-box; }

/* ---- casca -------------------------------------------------------------- */
.pt-cad{
    max-width:980px;
    margin:0 auto;
    padding:28px 16px 64px;
    color:var(--pt-texto);
}

.pt-cad-topo{ text-align:center; margin-bottom:26px; }
.pt-cad-topo img{ width:210px; max-width:60%; height:auto; }
.pt-cad-topo h1{
    font-size:23px; font-weight:700; letter-spacing:.02em;
    margin:20px 0 6px; color:var(--pt-preto);
}
.pt-cad-topo p{ font-size:14px; color:var(--pt-texto-suave); margin:0; }

.pt-cad-card{
    background:var(--pt-branco);
    border:1px solid var(--pt-linha);
    border-radius:var(--pt-raio);
    box-shadow:var(--pt-sombra);
    padding:26px 26px 22px;
    margin-bottom:18px;
}

/* ---- card do patrocinador ---------------------------------------------- */
.pt-cad-patro{
    display:flex; align-items:center; gap:20px;
    background:var(--pt-preto);
    border-radius:var(--pt-raio);
    padding:20px 24px;
    margin-bottom:18px;
    color:var(--pt-branco);
}
.pt-cad-patro-foto{
    width:88px; height:88px; flex:0 0 88px;
    border-radius:50%;
    overflow:hidden;
    background:var(--pt-branco);
    display:flex; align-items:center; justify-content:center;
    border:2px solid rgba(255,255,255,.85);
}
.pt-cad-patro-foto img{ width:100%; height:100%; object-fit:cover; }
.pt-cad-patro-foto img.is-logo{ width:78%; height:auto; object-fit:contain; }
.pt-cad-patro-info{ flex:1 1 auto; min-width:0; }
.pt-cad-patro-eyebrow{
    font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
    color:rgba(255,255,255,.62); margin:0 0 5px;
}
.pt-cad-patro-nome{
    font-size:19px; font-weight:700; margin:0 0 2px; line-height:1.2;
    overflow:hidden; text-overflow:ellipsis;
}
.pt-cad-patro-user{ font-size:13px; color:rgba(255,255,255,.7); margin:0; }
.pt-cad-patro-social{ display:flex; gap:8px; flex:0 0 auto; }
.pt-cad-patro-social a{
    width:40px; height:40px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.12); color:var(--pt-branco);
    font-size:16px; text-decoration:none;
    transition:background .15s, transform .15s;
}
.pt-cad-patro-social a:hover{ background:rgba(255,255,255,.24); transform:translateY(-2px); color:var(--pt-branco); }

/* ---- stepper ------------------------------------------------------------ */
.pt-cad-passos{
    display:flex; align-items:flex-start; justify-content:center;
    gap:0; margin:0 0 26px;
}
.pt-cad-passo{
    display:flex; flex-direction:column; align-items:center; gap:8px;
    flex:1 1 0; position:relative; text-align:center;
}
.pt-cad-passo::before{
    content:""; position:absolute; top:17px; left:-50%; width:100%; height:2px;
    background:var(--pt-linha); z-index:0;
}
.pt-cad-passo:first-child::before{ display:none; }
.pt-cad-passo.feito::before{ background:var(--pt-preto); }
.pt-cad-bolinha{
    position:relative; z-index:1;
    width:36px; height:36px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--pt-branco);
    border:2px solid var(--pt-linha-forte);
    color:var(--pt-texto-fraco);
    font-size:14px; font-weight:700;
    transition:border-color .18s, color .18s, background .18s, box-shadow .18s;
}
.pt-cad-passo.ativo .pt-cad-bolinha{
    border-color:var(--pt-preto); color:var(--pt-preto);
    box-shadow:0 0 0 5px rgba(0,0,0,.08);
}
.pt-cad-passo.feito .pt-cad-bolinha{
    border-color:var(--pt-preto); background:var(--pt-preto); color:var(--pt-branco);
}
.pt-cad-passo-nome{
    font-size:12px; font-weight:600; color:var(--pt-texto-fraco); letter-spacing:.02em;
}
.pt-cad-passo.ativo .pt-cad-passo-nome,
.pt-cad-passo.feito .pt-cad-passo-nome{ color:var(--pt-preto); }

/* ---- etapas ------------------------------------------------------------- */
.pt-cad-etapa{ display:none; }
.pt-cad-etapa.ativa{ display:block; }

.pt-cad-etapa-titulo{
    font-size:16px; font-weight:700; margin:0 0 4px; color:var(--pt-preto);
}
.pt-cad-etapa-sub{
    font-size:13px; color:var(--pt-texto-suave); margin:0 0 20px;
}

/* ---- grid de campos ----------------------------------------------------- */
.pt-cad-linha{
    display:grid; grid-template-columns:repeat(12,1fr); gap:16px; margin-bottom:16px;
}
.pt-cad-c2{ grid-column:span 2; }   /* Numero, UF */
.pt-cad-c3{ grid-column:span 3; }
.pt-cad-c4{ grid-column:span 4; }
.pt-cad-c5{ grid-column:span 5; }
.pt-cad-c6{ grid-column:span 6; }
.pt-cad-c7{ grid-column:span 7; }
.pt-cad-c8{ grid-column:span 8; }
.pt-cad-c9{ grid-column:span 9; }
.pt-cad-c12{ grid-column:span 12; }

.pt-cad-campo{ display:flex; flex-direction:column; min-width:0; }
.pt-cad-campo > label{
    font-size:12px; font-weight:600; color:var(--pt-texto);
    margin:0 0 6px; letter-spacing:.01em;
}
.pt-cad-campo > label .req{ color:var(--pt-erro); font-weight:700; }

.pt-cad .pt-cad-campo input[type="text"],
.pt-cad .pt-cad-campo input[type="email"],
.pt-cad .pt-cad-campo input[type="tel"],
.pt-cad .pt-cad-campo input[type="password"],
.pt-cad .pt-cad-campo input[type="date"],
.pt-cad .pt-cad-campo select,
.pt-cad .pt-cad-campo textarea{
    width:100%;
    height:44px;
    padding:10px 13px;
    font-size:16px;               /* 16px evita o auto-zoom do iOS ao focar */
    line-height:1.3;
    color:var(--pt-texto);
    background:var(--pt-branco);
    border:1px solid var(--pt-linha-forte);
    border-radius:var(--pt-raio-sm);
    box-shadow:none;
    transition:border-color .15s, box-shadow .15s;
    -webkit-appearance:none;
    appearance:none;
}
.pt-cad .pt-cad-campo select{
    background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235c5c5c'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 8px center;
    background-size:22px 22px;
    padding-right:34px;
}
.pt-cad .pt-cad-campo input:focus,
.pt-cad .pt-cad-campo select:focus,
.pt-cad .pt-cad-campo textarea:focus{
    outline:none;
    border-color:var(--pt-preto);
    box-shadow:0 0 0 3px rgba(0,0,0,.10);
}
.pt-cad .pt-cad-campo input:disabled{ background:var(--pt-fundo-suave); color:var(--pt-texto-fraco); }
.pt-cad .pt-cad-campo input.erro,
.pt-cad .pt-cad-campo select.erro{
    border-color:var(--pt-erro);
    box-shadow:0 0 0 3px rgba(180,35,24,.10);
}
/* resumo de erros da etapa — para a validação nunca falhar em silêncio */
.pt-cad-resumo-erro{
    display:none;
    background:var(--pt-erro-bg);
    border:1px solid #fecdca;
    border-left:3px solid var(--pt-erro);
    border-radius:var(--pt-raio-sm);
    padding:12px 15px;
    margin:0 0 18px;
    font-size:13px;
    color:var(--pt-erro);
}
.pt-cad-resumo-erro.visivel{ display:block; }
.pt-cad-resumo-erro strong{ display:block; margin-bottom:4px; font-weight:700; }
.pt-cad-resumo-erro ul{ margin:0; padding-left:18px; }
.pt-cad-resumo-erro li{ margin:2px 0; }

.pt-cad-ajuda{ font-size:11.5px; color:var(--pt-texto-fraco); margin:6px 0 0; }
.pt-cad-erro{ font-size:11.5px; color:var(--pt-erro); margin:6px 0 0; display:none; }
.pt-cad-erro.visivel{ display:block; }

/* aviso de disponibilidade do usuário */
.pt-cad-aviso{
    display:none; align-items:center; gap:8px;
    margin-top:8px; padding:9px 12px;
    border-radius:var(--pt-raio-sm);
    font-size:12.5px; line-height:1.35;
    background:var(--pt-fundo-suave); border:1px solid var(--pt-linha);
    color:var(--pt-texto-suave);
}
.pt-cad-aviso.visivel{ display:flex; }
.pt-cad-aviso.ok{ background:#f4f4f4; border-color:var(--pt-linha-forte); color:var(--pt-texto); }
.pt-cad-aviso.ruim{ background:var(--pt-erro-bg); border-color:#fecdca; color:var(--pt-erro); }
.pt-cad-aviso img{ width:16px; height:16px; }

/* ---- revisão ------------------------------------------------------------ */
.pt-cad-revisao{
    background:var(--pt-fundo-suave);
    border:1px solid var(--pt-linha);
    border-radius:var(--pt-raio-sm);
    padding:4px 18px;
    margin-bottom:18px;
}
.pt-cad-revisao dl{ display:grid; grid-template-columns:minmax(120px,34%) 1fr; margin:0; }
.pt-cad-revisao dt,
.pt-cad-revisao dd{
    padding:11px 0; margin:0; border-bottom:1px solid var(--pt-linha);
    font-size:13px; min-width:0;
}
.pt-cad-revisao dt{ color:var(--pt-texto-suave); font-weight:600; }
.pt-cad-revisao dd{ color:var(--pt-texto); word-break:break-word; }
.pt-cad-revisao dl > :nth-last-child(1),
.pt-cad-revisao dl > :nth-last-child(2){ border-bottom:0; }

/* ---- ações -------------------------------------------------------------- */
.pt-cad-acoes{
    display:flex; gap:12px; align-items:center; justify-content:space-between;
    margin-top:24px; padding-top:20px; border-top:1px solid var(--pt-linha);
}
.pt-cad-acoes .direita{ display:flex; gap:12px; margin-left:auto; }

.pt-cad .pt-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    height:46px; padding:0 24px;
    font-size:13.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
    border-radius:var(--pt-raio-sm); border:1px solid transparent;
    cursor:pointer; text-decoration:none;
    transition:background .15s, border-color .15s, color .15s, transform .1s;
}
.pt-cad .pt-btn:active{ transform:translateY(1px); }
.pt-cad .pt-btn-primario{ background:var(--pt-preto); color:var(--pt-branco); border-color:var(--pt-preto); }
.pt-cad .pt-btn-primario:hover{ background:var(--pt-preto-hover); border-color:var(--pt-preto-hover); color:var(--pt-branco); }
.pt-cad .pt-btn-fantasma{ background:transparent; color:var(--pt-texto); border-color:var(--pt-linha-forte); }
.pt-cad .pt-btn-fantasma:hover{ border-color:var(--pt-preto); color:var(--pt-preto); background:rgba(0,0,0,.03); }
.pt-cad .pt-btn[disabled]{ opacity:.5; cursor:not-allowed; }

.pt-cad-contrato-ok{
    display:none; align-items:center; gap:6px;
    font-size:12.5px; font-weight:600; color:var(--pt-preto); margin-top:10px;
}
.pt-cad-contrato-ok.visivel{ display:flex; }

.pt-cad-rodape{
    text-align:center; font-size:11.5px; color:var(--pt-texto-fraco);
    line-height:1.6; margin-top:22px;
}
.pt-cad-rodape a{ color:var(--pt-texto-suave); text-decoration:underline; }

/* ---- alertas do MSG ----------------------------------------------------- */
.pt-cad-alertas{ margin-bottom:18px; }
.pt-cad-alertas .alert{
    border-radius:var(--pt-raio-sm);
    border:1px solid var(--pt-linha-forte);
    background:var(--pt-branco);
    color:var(--pt-texto);
    padding:13px 16px;
    font-size:13.5px;
    box-shadow:none;
    text-shadow:none;
}
.pt-cad-alertas .alert-error,
.pt-cad-alertas .alert-danger{ background:var(--pt-erro-bg); border-color:#fecdca; color:var(--pt-erro); }

/* ---- modal do contrato -------------------------------------------------- */
.pt-cad-modal .modal-content{
    border-radius:var(--pt-raio);
    border:1px solid var(--pt-linha);
    font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
}
.pt-cad-modal .modal-header{ border-bottom:1px solid var(--pt-linha); }
.pt-cad-modal .modal-title{ font-size:16px; font-weight:700; color:var(--pt-preto); }
.pt-cad-modal .modal-footer{ border-top:1px solid var(--pt-linha); }

/* ---- responsivo --------------------------------------------------------- */
@media (max-width:860px){
    .pt-cad-c2,.pt-cad-c3,.pt-cad-c4,.pt-cad-c5,.pt-cad-c6,.pt-cad-c7,.pt-cad-c8,.pt-cad-c9{ grid-column:span 12; }
    .pt-cad-linha{ gap:14px; margin-bottom:14px; }
    .pt-cad-card{ padding:20px 18px 18px; }
    .pt-cad-patro{ flex-direction:column; text-align:center; gap:14px; padding:22px 18px; }
    .pt-cad-patro-nome{ white-space:normal; }
    .pt-cad-passo-nome{ font-size:11px; }
}

@media (max-width:600px){
    .pt-cad{ padding:18px 12px 48px; }
    .pt-cad-topo h1{ font-size:20px; }
    .pt-cad-revisao dl{ grid-template-columns:1fr; }
    .pt-cad-revisao dt{ padding-bottom:0; border-bottom:0; }
    .pt-cad-revisao dd{ padding-top:3px; }
    .pt-cad-acoes{ flex-direction:column-reverse; align-items:stretch; }
    .pt-cad-acoes .direita{ margin-left:0; flex-direction:column; }
    .pt-cad .pt-btn{ width:100%; }
    .pt-cad-passo-nome{ display:none; }
}
