/*
    Estilos exclusivos da versao wizard do pre-cadastro (forms/cadastro.xhtml, pagina
    oficial de auto-cadastro de alunos). Nao mexe no sistema.css compartilhado --
    escopado sob .wizard-corAssessoria (card) e .wz-topo/.wz-rodape (fora do card).
    A variavel --corAssessoria eh definida inline no proprio cadastro.xhtml, em :root
    (precisa de EL pra pegar a cor da assessoria em tempo de render).
*/

body {
    font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* O tema Bootstrap do PrimeFaces aplica text-shadow branco em qualquer elemento
   "themed" (botão, pill de etapa, etc — cada um carrega uma combinação diferente de
   .ui-widget/.ui-state-default/.ui-state-highlight/.ui-state-active), pensado pra
   fundo claro. Em fundo colorido isso vira um texto borrado/"embaçado". */
.wizard-corAssessoria .ui-widget,
.wizard-corAssessoria .ui-state-default,
.wizard-corAssessoria .ui-state-highlight,
.wizard-corAssessoria .ui-state-active {
    text-shadow: none !important;
}

/* ---------- Topo do sistema ---------- */
.wz-topo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    padding: 1.75rem 1.5rem 2rem;
    background: linear-gradient(160deg, var(--corAssessoria), color-mix(in srgb, var(--corAssessoria) 78%, #000));
    text-align: center;
}
.wz-topo-logo {
    line-height: 0;
}
.wz-topo-titulo.ui-outputlabel {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.005em;
    color: #fff;
}
.wz-rodape {
    display: block;
    height: 6px;
    background: var(--corAssessoria);
}

/* ---------- Card do formulario ---------- */
.wizard-corAssessoria.ui-panel {
    border: none !important;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(21, 26, 17, .06), 0 16px 40px -20px rgba(21, 26, 17, .28);
}
.wizard-corAssessoria.ui-panel > .ui-panel-titlebar {
    background: #fff !important;
    border: none !important;
    border-bottom: 1px solid #edf0e9 !important;
    padding: 1.35rem 1.75rem !important;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: color-mix(in srgb, var(--corAssessoria) 82%, #151a11);
}
.wizard-corAssessoria.ui-panel > .ui-panel-content {
    border: none !important;
    background: #fff !important;
    padding: 1.75rem !important;
}

/* ---------- Barra de etapas ---------- */
/* ---------- Mensagens de erro/sucesso (p:messages) ---------- */
.wizard-corAssessoria .ui-messages {
    display: block;
    margin: 0 0 1.5rem;
}
.wizard-corAssessoria .ui-messages-error,
.wizard-corAssessoria .ui-messages-info {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    border: none !important;
    border-radius: 10px;
    padding: 1rem 1.1rem !important;
    font-size: .875rem;
    line-height: 1.5;
}
.wizard-corAssessoria .ui-messages-error {
    background: #fdf0ef !important;
    border-left: 4px solid #c0392b !important;
    color: #8a2e24 !important;
}
.wizard-corAssessoria .ui-messages-info {
    background: #eef6ee !important;
    border-left: 4px solid #2f7a3d !important;
    color: #245c2e !important;
}
.wizard-corAssessoria .ui-messages-error-icon,
.wizard-corAssessoria .ui-messages-info-icon {
    display: none !important;
}
.wizard-corAssessoria .ui-messages-error::before,
.wizard-corAssessoria .ui-messages-info::before {
    font: normal normal normal 1.05rem/1.5 FontAwesome;
    order: 0;
    flex: 0 0 auto;
}
.wizard-corAssessoria .ui-messages-error::before {
    content: "\f06a"; /* fa-exclamation-circle */
    color: #c0392b;
}
.wizard-corAssessoria .ui-messages-info::before {
    content: "\f058"; /* fa-check-circle */
    color: #2f7a3d;
}
.wizard-corAssessoria .ui-messages-error > ul,
.wizard-corAssessoria .ui-messages-info > ul {
    order: 1;
    list-style: none;
    margin: 0;
    padding: 0;
}
.wizard-corAssessoria .ui-messages-error-summary,
.wizard-corAssessoria .ui-messages-info-summary {
    font-weight: 600;
}
.wizard-corAssessoria .ui-messages-close {
    order: 2;
    margin-left: auto;
    opacity: .6;
}
.wizard-corAssessoria .ui-messages-close:hover {
    opacity: 1;
}

.wizard-corAssessoria .ui-wizard-step-titles {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0 0 1.6em 0;
    padding: 0;
    gap: .45em;
    border: none;
}
.wizard-corAssessoria .ui-wizard-step-title {
    float: none;
    margin: 0 !important;
    padding: .55em 1em !important;
    font-size: .8rem;
    font-weight: 700;
    background: #f2f4ef !important;
    background-image: none !important;
    border: none !important;
    border-radius: 999px;
    color: #8a9080 !important;
    cursor: default;
    transition: background-color .15s ease, color .15s ease;
}
.wizard-corAssessoria .ui-wizard-step-title a {
    color: inherit !important;
    text-decoration: none;
}
.wizard-corAssessoria .ui-wizard-step-title.ui-state-highlight {
    background: var(--corAssessoria) !important;
    background-image: none !important;
    color: #fff !important;
    box-shadow: 0 4px 12px -4px var(--corAssessoria);
}
.wizard-corAssessoria .ui-wizard-step-title.ui-state-highlight a {
    color: #fff !important;
}
/* Barra condensada: só 1ª/atual/última etapa ficam visíveis, o resto vira "···" (ver JS) */
.wizard-corAssessoria .ui-wizard-step-title.wz-tab-oculta {
    display: none !important;
}
.wizard-corAssessoria .wz-tab-elipse {
    background: transparent !important;
    color: #b7bdae !important;
    cursor: default !important;
    padding: .55em .3em !important;
    font-weight: 700;
    letter-spacing: .1em;
}
.wizard-corAssessoria .ui-wizard-step-title:not(.wz-tab-elipse) {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wizard-corAssessoria .ui-wizard-content {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
/* Navegação própria (substitui a navbar padrão do p:wizard, showNavBar=false) */
.wizard-corAssessoria .wz-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-top: 1.6em;
    padding-top: 1.2em;
    border-top: 1px solid #edf0e9;
    justify-content: flex-end;
}
.wizard-corAssessoria .wz-nav-steps {
    display: flex;
    gap: .6rem;
}
.wizard-corAssessoria .wz-nav-back,
.wizard-corAssessoria .wz-nav-next {
    font-family: inherit;
    font-weight: 700;
    font-size: .875em;
    padding: .8em 1.5em;
    min-width: 160px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    transition: filter .15s ease, transform .1s ease;
}
.wizard-corAssessoria .wz-nav-back:hover,
.wizard-corAssessoria .wz-nav-next:hover {
    filter: brightness(0.95);
}
.wizard-corAssessoria .wz-nav-back:active,
.wizard-corAssessoria .wz-nav-next:active {
    transform: scale(.98);
}
.wizard-corAssessoria .wz-nav-back {
    background: #f2f2f2;
    color: #555;
}
.wizard-corAssessoria .wz-nav-next {
    background: var(--corAssessoria);
    color: #fff;
}
.wizard-corAssessoria .wz-btn-salvar-nav.ui-button {
    background: #2f7a3d !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700;
    font-size: .875em;
    padding: .8em 1.5em !important;
    min-width: 220px;
    border-radius: 8px;
    box-shadow: none !important;
    width: auto !important;
    transition: filter .15s ease, transform .1s ease;
}
.wizard-corAssessoria .wz-btn-salvar-nav.ui-button:hover {
    filter: brightness(1.05);
}
.wizard-corAssessoria .wz-btn-salvar-nav.ui-button:active {
    transform: scale(.98);
}
.wizard-corAssessoria .wz-nav-back.is-hidden,
.wizard-corAssessoria .wz-nav-next.is-hidden,
.wizard-corAssessoria .wz-btn-salvar-nav.is-hidden {
    display: none !important;
}

/* Título + subtítulo dentro de uma etapa (usado no PAR-Q, cuja aba virou só "PAR-Q") */
.wizard-corAssessoria .wz-secao-titulo {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .2rem;
    margin: 0 auto 1.2rem;
}
.wizard-corAssessoria .wz-secao-titulo-h {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: color-mix(in srgb, var(--corAssessoria) 82%, #151a11);
}
.wizard-corAssessoria .wz-secao-titulo-sub {
    font-size: .78rem;
    color: #6b7460;
    line-height: 1.45;
    max-width: 58ch;
}

/* CEP: campo com largura confortável + botão de buscar modernizado (outline na cor da assessoria) */
.wizard-corAssessoria .wz-cep-row {
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
}
.wizard-corAssessoria .wz-cep-input.ui-inputfield {
    flex: 0 0 11rem;
}
.wizard-corAssessoria .wz-cep-btn.ui-button {
    display: inline-flex;
    align-items: center;
    gap: .5em;
    flex: 0 0 auto;
    background: #fff !important;
    border: 1.5px solid var(--corAssessoria) !important;
    color: var(--corAssessoria) !important;
    font-weight: 700;
    font-size: .8125em;
    padding: 0 1.1em !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    width: auto !important;
    transition: background-color .15s ease, color .15s ease;
}
.wizard-corAssessoria .wz-cep-btn.ui-button:hover {
    background: var(--corAssessoria) !important;
    color: #fff !important;
}

/* ---------- Grid de campos: label em cima, 2 colunas no desktop ---------- */
.wizard-corAssessoria .wz-campos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem 1.5rem;
}
.wizard-corAssessoria .wz-campo {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-width: 0;
}
.wizard-corAssessoria .wz-campo-largo {
    grid-column: 1 / -1;
}
.wizard-corAssessoria .wz-campo > label,
.wizard-corAssessoria .wz-campo .ui-outputlabel {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .01em;
    color: #6b7460;
}
/* Telefone como um único campo visual: DDD + número dentro da mesma caixa */
.wizard-corAssessoria .wz-tel-group {
    display: flex;
    align-items: stretch;
    border: 1.5px solid #e2e7db;
    border-radius: 9px;
    background: #f8faf6;
    overflow: hidden;
    transition: border-color .15s ease;
}
.wizard-corAssessoria .wz-tel-group:focus-within {
    border-color: var(--corAssessoria);
}
.wizard-corAssessoria .wz-tel-group input.ui-inputfield {
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.wizard-corAssessoria .wz-tel-group input.ui-inputfield.wz-tel-ddd {
    flex: 0 0 3.4rem;
    min-width: 0;
    text-align: center;
    font-weight: 700;
    background: color-mix(in srgb, var(--corAssessoria) 8%, #f8faf6) !important;
    border-right: 1.5px solid #e2e7db !important;
}
.wizard-corAssessoria .wz-tel-group .wz-tel-numero {
    flex: 1 1 0%;
    min-width: 0;
    padding-left: .7rem !important;
}
.wizard-corAssessoria .wz-campo-parq {
    flex-direction: row !important;
    align-items: center;
    gap: .9rem;
    padding: .5rem .25rem;
    border-bottom: 1px solid #f2f4ef;
}
.wizard-corAssessoria .wz-campo-parq:last-child {
    border-bottom: none;
}
.wizard-corAssessoria .wz-campo-parq .ui-selectonemenu {
    flex: 0 0 4.5rem;
}
.wizard-corAssessoria .wz-campo-parq .ui-selectonemenu .ui-selectonemenu-label {
    padding-top: .4rem !important;
    padding-bottom: .4rem !important;
}
.wizard-corAssessoria .wz-campo-parq label {
    font-size: .875rem !important;
    font-weight: 400 !important;
    letter-spacing: normal;
    color: #151a11 !important;
    line-height: 1.4;
}

/* Autocomplete (Cidade): o wrapper <span> também precisa encolher, não só o input interno */
.wizard-corAssessoria .wz-autocomplete-full.ui-autocomplete {
    display: block;
    width: 100%;
    min-width: 0;
}

/* ---------- Reset visual dos inputs do PrimeFaces ---------- */
.wizard-corAssessoria input.ui-inputfield,
.wizard-corAssessoria textarea.ui-inputfield,
.wizard-corAssessoria .ui-selectonemenu,
.wizard-corAssessoria .ui-autocomplete-input,
.wizard-corAssessoria .ui-fileupload {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid #e2e7db !important;
    border-radius: 9px !important;
    background: #f8faf6 !important;
    box-shadow: none !important;
    font-size: .9rem;
    color: #151a11;
    transition: border-color .15s ease, background-color .15s ease;
}
.wizard-corAssessoria input.ui-inputfield,
.wizard-corAssessoria textarea.ui-inputfield,
.wizard-corAssessoria .ui-autocomplete-input {
    padding: .6rem .75rem !important;
}
.wizard-corAssessoria .ui-selectonemenu {
    padding: 0 !important;
    display: flex;
    align-items: center;
}
.wizard-corAssessoria .ui-selectonemenu-label {
    padding: .6rem .75rem !important;
    border: none !important;
    background: transparent !important;
    flex: 1;
}
.wizard-corAssessoria .ui-selectonemenu-trigger {
    background: transparent !important;
    border: none !important;
}
.wizard-corAssessoria .ui-inputfield:focus,
.wizard-corAssessoria .ui-selectonemenu.ui-state-focus,
.wizard-corAssessoria .ui-autocomplete-input:focus {
    border-color: var(--corAssessoria) !important;
    background: #fff !important;
    outline: none;
}
.wizard-corAssessoria .ui-chkbox-box {
    border-radius: 5px !important;
}
.wizard-corAssessoria .ui-chkbox-box.ui-state-active {
    background: var(--corAssessoria) !important;
    border-color: var(--corAssessoria) !important;
}

/* Foto de perfil: avatar em círculo cinza (a silhueta padrão é um PNG transparente) */
.wizard-corAssessoria .wz-avatar-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: #eef1ea;
    border: 1px solid #e2e7db;
    overflow: hidden;
}
.wizard-corAssessoria .wz-avatar-wrap img {
    display: block;
}
.wizard-corAssessoria .wz-avatar-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--corAssessoria);
    opacity: .75;
}

/* Termos de uso: texto do regulamento em caixa rolável + checkbox de aceite */
.wizard-corAssessoria .wz-termos-texto {
    max-height: 220px;
    overflow-y: auto;
    text-align: left;
    padding: 1rem 1.2rem;
    background: #f8faf6;
    border: 1px solid #e2e7db;
    border-radius: 10px;
    font-size: .85rem;
    line-height: 1.55;
    color: #40492f;
}
.wizard-corAssessoria .wz-termos-check {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-top: .8rem;
    padding: .75rem 1rem;
    background: color-mix(in srgb, var(--corAssessoria) 8%, #f8faf6);
    border: 1px solid #e2e7db;
    border-radius: 10px;
    font-size: .875rem;
    color: #151a11;
}
/* Upload de foto: sem a caixa cinza padrão do tema, botão pill na cor da assessoria */
.wizard-corAssessoria .ui-fileupload {
    background: transparent !important;
    border: none !important;
}
.wizard-corAssessoria .ui-fileupload-buttonbar {
    background: transparent !important;
    border: none !important;
    padding: .5rem 0 0 !important;
    text-align: center;
}
.wizard-corAssessoria .ui-fileupload-choose.ui-button {
    display: inline-flex;
    align-items: center;
    gap: .55em;
    background: #fff !important;
    background-image: none !important;
    border: 1.5px solid var(--corAssessoria) !important;
    color: var(--corAssessoria) !important;
    font-weight: 700;
    font-size: .8125em;
    padding: .6em 1.4em !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    transition: background-color .15s ease, color .15s ease;
}
.wizard-corAssessoria .ui-fileupload-choose.ui-button:hover {
    background: var(--corAssessoria) !important;
    color: #fff !important;
}
/* O span original do ícone usa text-indent:-99999px pra esconder texto e mostrar
   um sprite de fundo (técnica antiga do jQuery UI) — qualquer ::before dentro dele
   herda esse indent e some da tela junto. Por isso o ícone fica no BOTÃO, não no span. */
.wizard-corAssessoria .ui-fileupload-choose .ui-icon {
    display: none !important;
}
.wizard-corAssessoria .ui-fileupload-choose.ui-button::before {
    content: "\f030"; /* fa-camera */
    font: normal normal normal 1rem/1 FontAwesome;
}
.wizard-corAssessoria .ui-fileupload-content {
    border: none !important;
    background: transparent !important;
    padding: .4rem 0 0 !important;
}

/* Erros de validação: sem a barra rosa padrão do tema, label + selo "obrigatório" */
.wizard-corAssessoria .ui-outputlabel.ui-state-error {
    background: transparent !important;
    color: #b23b3b !important;
    display: inline-flex;
    align-items: center;
    gap: .45em;
}
.wizard-corAssessoria .ui-outputlabel.ui-state-error::after {
    content: "Obrigatório";
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #b23b3b;
    background: #fbeaea;
    padding: .15em .55em;
    border-radius: 999px;
}
.wizard-corAssessoria .ui-inputfield.ui-state-error,
.wizard-corAssessoria .ui-autocomplete-input.ui-state-error,
.wizard-corAssessoria .ui-selectonemenu.ui-state-error,
.wizard-corAssessoria .wz-tel-group:has(.ui-state-error),
.wizard-corAssessoria .ui-calendar:has(.ui-state-error) {
    border-color: #b23b3b !important;
    background: #fdf5f5 !important;
}

/* Calendario: input + botão colados na mesma caixa (igual o campo de telefone) */
.wizard-corAssessoria .ui-calendar {
    display: flex;
    align-items: stretch;
    width: 100%;
    border: 1.5px solid #e2e7db;
    border-radius: 9px !important;
    background: #f8faf6;
    overflow: hidden;
}
.wizard-corAssessoria .ui-calendar input.ui-inputfield {
    border: none !important;
    background: transparent !important;
    flex: 1 1 0%;
    min-width: 0;
}
.wizard-corAssessoria .ui-calendar .ui-datepicker-trigger {
    flex: 0 0 auto;
    width: 2.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none !important;
    border-left: 1.5px solid #e2e7db !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
}
.wizard-corAssessoria .ui-calendar:focus-within {
    border-color: var(--corAssessoria);
}

/* ---------- Tela final de sucesso ---------- */
.wizard-corAssessoria .wz-sucesso {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.5rem 1rem 2rem;
    gap: .35rem;
}
.wizard-corAssessoria .wz-sucesso-icone {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--corAssessoria) 14%, #fff);
    color: var(--corAssessoria);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: .5rem;
}
.wizard-corAssessoria .wz-sucesso-titulo {
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
    color: color-mix(in srgb, var(--corAssessoria) 82%, #151a11);
}
.wizard-corAssessoria .wz-sucesso-texto {
    font-size: .875rem;
    color: #6b7460;
    line-height: 1.6;
    max-width: 46ch;
    margin: 0;
}

/* ---------- Dropdown de sugestões da Cidade ---------- */
.ui-autocomplete-panel {
    border: 1.5px solid #e2e7db !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 24px -12px rgba(21, 26, 17, .28) !important;
    padding: .35rem !important;
    overflow: hidden;
}
.ui-autocomplete-panel .ui-autocomplete-items {
    padding: 0 !important;
}
.ui-autocomplete-panel .ui-autocomplete-item {
    border-radius: 7px !important;
    padding: .55rem .65rem !important;
    font-size: .875rem;
}
.ui-autocomplete-panel .ui-autocomplete-item.ui-state-highlight {
    background: var(--corAssessoria) !important;
    color: #fff !important;
}
.ui-autocomplete-panel .ui-autocomplete-emptyMessage {
    padding: .6rem .65rem !important;
    font-size: .8125rem;
    color: #6b7460;
}

@media (max-width: 640px) {
    .wizard-corAssessoria.ui-panel > .ui-panel-content {
        padding: 1.25rem !important;
    }
    .wizard-corAssessoria .wz-campos {
        grid-template-columns: 1fr;
    }
    .wizard-corAssessoria .ui-wizard-step-titles {
        flex-wrap: nowrap;
    }
    .wizard-corAssessoria .ui-wizard-step-title:not(.wz-tab-elipse) {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }
    .wizard-corAssessoria .wz-nav {
        flex-wrap: wrap;
    }
    .wizard-corAssessoria .wz-nav-back,
    .wizard-corAssessoria .wz-nav-next {
        min-width: 0;
        flex: 1 1 auto;
    }
    .wizard-corAssessoria .wz-btn-salvar-nav.ui-button {
        min-width: 0 !important;
    }
}
