/* Neexus Partner Application Form */
.npf-wrap {
    --npf-color: #7c3aed;
    width: 100%;
    box-sizing: border-box;
}
.npf-wrap *, .npf-wrap *::before, .npf-wrap *::after { box-sizing: inherit; }

/* ── Steps ── */
.npf-step { display: none; }
.npf-step.active { display: block; }

.npf-step-title {
    font-size: 1.1rem; font-weight: 700; color: #111827;
    margin-bottom: .25rem;
}
.npf-step-sub {
    font-size: .875rem; color: #6b7280; margin-bottom: 1.5rem;
}

/* ── Fields ── */
.npf-field { margin-bottom: 1.1rem; }
.npf-label {
    display: block; font-size: .8rem; font-weight: 600;
    color: #374151; margin-bottom: .35rem;
}
.npf-label .req { color: #dc2626; margin-left: 2px; }
.npf-input, .npf-select, .npf-textarea {
    width: 100%; padding: .55rem .75rem; border: 1.5px solid #e5e7eb;
    border-radius: 8px; font-size: .9rem; color: #111827;
    background: #fff; transition: border-color .15s; outline: none;
    box-sizing: border-box; font-family: inherit;
    -webkit-appearance: none; appearance: none;
}
.npf-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right .75rem center;
    padding-right: 2.2rem; cursor: pointer;
}
.npf-input:focus, .npf-select:focus, .npf-textarea:focus {
    border-color: var(--npf-color, #7c3aed);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--npf-color) 12%, transparent);
}
.npf-textarea { resize: vertical; min-height: 100px; }
.npf-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
@media (max-width: 480px) { .npf-row { grid-template-columns: 1fr; } }

/* City autocomplete */
.npf-city-wrap { position: relative; }
.npf-city-dropdown {
    position: absolute; top: calc(100% + 4px); left: 0; right: 0;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,.1); z-index: 200;
    max-height: 200px; overflow-y: auto; display: none;
}
.npf-city-dropdown.open { display: block; }
.npf-city-opt {
    padding: .45rem .75rem; font-size: .875rem; cursor: pointer;
    color: #111827;
}
.npf-city-opt:hover { background: #f3f4f6; }

/* ── Service pills ── */
.npf-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .25rem; }
.npf-pill {
    padding: .35rem .9rem; border: 1.5px solid #e5e7eb; border-radius: 99px;
    font-size: .82rem; cursor: pointer; user-select: none;
    color: #374151; background: #fff; transition: all .15s;
}
.npf-pill.selected {
    border-color: var(--npf-color, #7c3aed);
    background: var(--npf-color, #7c3aed);
    color: #fff;
}

/* ── Yes/No ── */
.npf-yesno { display: flex; gap: .5rem; }
.npf-yn-btn {
    flex: 1; padding: .5rem; border: 1.5px solid #e5e7eb; border-radius: 8px;
    background: #fff; font-size: .875rem; cursor: pointer; font-weight: 500;
    color: #374151; transition: all .15s; text-align: center; font-family: inherit;
}
.npf-yn-btn.selected {
    border-color: var(--npf-color, #7c3aed);
    background: var(--npf-color, #7c3aed);
    color: #fff;
}

/* ── Navigation — botão principal em cima, voltar abaixo ── */
.npf-nav { display: flex; flex-direction: column; gap: .6rem; margin-top: 1.5rem; }
.npf-btn-next, .npf-btn-submit {
    width: 100%; padding: .65rem 1.25rem; border: none; border-radius: 8px;
    background: var(--npf-color, #7c3aed); color: #fff;
    font-size: .9rem; font-weight: 600; cursor: pointer;
    transition: opacity .15s; font-family: inherit;
}
.npf-btn-next:hover, .npf-btn-submit:hover { opacity: .88; }
.npf-btn-next:disabled, .npf-btn-submit:disabled { opacity: .5; cursor: default; }
.npf-btn-back {
    width: 100%; padding: .55rem 1rem; border: 1.5px solid #e5e7eb; border-radius: 8px;
    background: #fff; color: #6b7280; font-size: .85rem; cursor: pointer;
    transition: background .15s; font-family: inherit; text-align: center;
}
.npf-btn-back:hover { background: #f3f4f6; color: #374151; }

/* ── Error ── */
.npf-error { color: #dc2626; font-size: .8rem; margin-top: .3rem; display: none; }
.npf-field.has-error .npf-input,
.npf-field.has-error .npf-select,
.npf-field.has-error .npf-textarea { border-color: #dc2626; }
.npf-field.has-error .npf-error { display: block; }
.npf-global-error {
    background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px;
    padding: .65rem .875rem; font-size: .82rem; color: #dc2626;
    margin-bottom: 1rem; display: none;
}

/* ── Success ── */
.npf-success {
    text-align: center; padding: 2.5rem 1rem;
}
.npf-success-icon { font-size: 3rem; margin-bottom: .75rem; }
.npf-success-title { font-size: 1.2rem; font-weight: 700; color: #111827; margin-bottom: .5rem; }
.npf-success-sub   { font-size: .9rem; color: #6b7280; }
