/* ============================================================
   Nexuscred Portal — portal.css
   Estilos do portal do cliente (login, cadastro, dashboard, docs)
   ============================================================ */

/* ── Variáveis locais ────────────────────────────────────── */
:root {
  --ncp-blue:       #1a3a5c;
  --ncp-blue-light: #2563a8;
  --ncp-green:      #27ae60;
  --ncp-red:        #c0392b;
  --ncp-amber:      #e67e22;
  --ncp-surface:    #ffffff;
  --ncp-bg:         #f4f6f9;
  --ncp-border:     #dde3ec;
  --ncp-text:       #1e293b;
  --ncp-text-light: #64748b;
  --ncp-radius:     10px;
  --ncp-shadow:     0 2px 12px rgba(26,58,92,.08);
  --ncp-transition: .2s ease;
}

/* ── Base ────────────────────────────────────────────────── */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0 }

/* ── Container ───────────────────────────────────────────── */
.ncp-container        { width:100%;max-width:1180px;margin-inline:auto;padding-inline:20px }
.ncp-container--narrow{ max-width:560px }
.ncp-container--form  { max-width:820px }

/* ── Hero do portal ──────────────────────────────────────── */
.ncp-portal-hero {
  background: var(--ncp-blue);
  padding-block: var(--space-3xl, 56px) var(--space-2xl, 40px);
  color: #fff;
}
.ncp-portal-hero--compact { padding-block: var(--space-xl, 24px); }
.ncp-portal-hero .ncp-eyebrow { color:rgba(255,255,255,.6);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;display:block;margin-bottom:6px }
.ncp-portal-hero h1 { font-size:clamp(1.5rem,3vw,2.25rem);margin:0 0 8px;color:#fff }
.ncp-portal-hero p  { color:rgba(255,255,255,.75);max-width:52ch;margin:0 }

.ncp-portal-topbar { display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap }
.ncp-portal-topbar__actions { display:flex;gap:10px;align-items:center }

/* ── Seção principal ─────────────────────────────────────── */
.ncp-portal-section { padding-block: var(--space-3xl, 48px);background:var(--ncp-bg);min-height:60vh }

/* ── Botões ──────────────────────────────────────────────── */
.ncp-btn { display:inline-flex;align-items:center;gap:8px;padding:.6rem 1.25rem;border-radius:8px;font-family:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;text-decoration:none;border:2px solid transparent;transition:all var(--ncp-transition);line-height:1 }
.ncp-btn--primary   { background:var(--ncp-blue);color:#fff }
.ncp-btn--primary:hover { background:#122c46 }
.ncp-btn--outline   { border-color:var(--ncp-blue);color:var(--ncp-blue);background:transparent }
.ncp-btn--outline:hover { background:var(--ncp-blue);color:#fff }
.ncp-btn--ghost     { background:transparent;color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.3) }
.ncp-btn--ghost:hover { background:rgba(255,255,255,.1) }
.ncp-btn--whatsapp  { background:#25d366;color:#fff;border-color:#25d366 }
.ncp-btn--whatsapp:hover { background:#1da851 }
.ncp-btn--full      { width:100%;justify-content:center }
.ncp-btn--small     { padding:.35rem .75rem;font-size:.8125rem }

/* ── Alertas ─────────────────────────────────────────────── */
.ncp-alert { padding:12px 16px;border-radius:8px;font-size:.9375rem;margin-bottom:20px;display:flex;align-items:flex-start;gap:10px }
.ncp-alert--success { background:#edfaf1;border:1px solid var(--ncp-green);color:#1a6b3c }
.ncp-alert--warning { background:#fff8e1;border:1px solid var(--ncp-amber);color:#7a5200 }
.ncp-alert--error   { background:#fdecea;border:1px solid var(--ncp-red);color:#7a1c12 }

/* ── Formulários ─────────────────────────────────────────── */
.ncp-form { display:flex;flex-direction:column;gap:20px }
.ncp-form-group { display:flex;flex-direction:column;gap:6px }
.ncp-form-row { display:flex;gap:16px }
.ncp-form-row--2col { display:grid;grid-template-columns:1fr 1fr;gap:16px }
.ncp-form-row--3col { display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px }
@media (max-width:640px) {
  .ncp-form-row--2col,
  .ncp-form-row--3col { grid-template-columns:1fr }
}
.ncp-form-label { font-size:.875rem;font-weight:600;color:var(--ncp-text) }
.ncp-form-label span { color:var(--ncp-red) }
.ncp-form-input { width:100%;padding:.625rem .875rem;border:1.5px solid var(--ncp-border);border-radius:8px;font-family:inherit;font-size:1rem;color:var(--ncp-text);background:#fff;transition:border-color var(--ncp-transition),box-shadow var(--ncp-transition);outline:none }
.ncp-form-input:focus { border-color:var(--ncp-blue-light);box-shadow:0 0 0 3px rgba(37,99,168,.12) }
.ncp-section-title { font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ncp-text-light);margin:12px 0 4px;padding-top:12px;border-top:1px solid var(--ncp-border) }
.ncp-toggle-group { flex-direction:row;align-items:center }
.ncp-toggle-label { display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.9375rem }
.ncp-conditional-fields { border-left:3px solid var(--ncp-blue-light);padding-left:20px;margin-top:4px;display:flex;flex-direction:column;gap:16px }
.ncp-back-link { color:rgba(255,255,255,.6);font-size:.875rem;text-decoration:none;display:block;margin-bottom:6px }
.ncp-back-link:hover { color:#fff }

/* ── Login box ───────────────────────────────────────────── */
.ncp-login-box { background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);padding:40px;margin-inline:auto }
.ncp-login-box h2 { font-size:1.5rem;margin:0 0 8px }
.ncp-login-box__desc { color:var(--ncp-text-light);font-size:.9375rem;margin-bottom:24px }
.ncp-login-box__separator { text-align:center;position:relative;margin:24px 0 }
.ncp-login-box__separator::before { content:'';position:absolute;inset:50% 0 auto;height:1px;background:var(--ncp-border) }
.ncp-login-box__separator span { position:relative;background:#fff;padding:0 12px;color:var(--ncp-text-light);font-size:.875rem }

/* ── OTP — elementos específicos da fase 2 ── */

/* Botão "← Voltar" */
.ncp-btn-back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .875rem;
  font-weight: 600;
  color: var(--ncp-text-light);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-bottom: 20px;
  transition: color var(--ncp-transition);
}
.ncp-btn-back:hover { color: var(--ncp-blue); }

/* Timer regressivo */
.ncp-otp-timer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .8125rem;
  font-weight: 500;
  color: var(--ncp-blue-light);
  background: #eef4ff;
  border: 1px solid #c7d9f5;
  border-radius: 6px;
  padding: 6px 12px;
  margin-bottom: 20px;
}
.ncp-otp-timer.is-expired {
  color: var(--ncp-red);
  background: #fff0f0;
  border-color: #f5c6c6;
}

/* Campo OTP — fonte grande, alinhado ao centro, monospace */
.ncp-otp-input {
  font-family: 'Courier New', Courier, monospace !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  letter-spacing: .35em;
  text-align: center;
  padding: .75rem 1rem !important;
  border-width: 2px;
}
.ncp-otp-input:focus { border-color: var(--ncp-blue) !important; }

/* Dica abaixo do campo */
.ncp-form-hint {
  font-size: .78rem;
  color: var(--ncp-text-light);
  margin-top: -2px;
}

@media (max-width: 480px) {
  .ncp-login-box { padding: 28px 20px; }
  .ncp-otp-input { font-size: 1.5rem !important; letter-spacing: .2em; }
}

/* ── Multi-step form ─────────────────────────────────────── */
.ncp-steps { display:flex;gap:0;margin-bottom:32px;background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);overflow:hidden }
.ncp-steps__item { flex:1;padding:14px 12px;text-align:center;font-size:.8125rem;font-weight:600;color:var(--ncp-text-light);border-bottom:3px solid transparent;transition:all var(--ncp-transition);cursor:default }
.ncp-steps__item span { display:block;width:24px;height:24px;background:var(--ncp-border);border-radius:50%;margin:0 auto 4px;font-size:.75rem;line-height:24px;color:var(--ncp-text-light) }
.ncp-steps__item.is-active { color:var(--ncp-blue);border-bottom-color:var(--ncp-blue) }
.ncp-steps__item.is-active span { background:var(--ncp-blue);color:#fff }
.ncp-steps__item.is-done { color:var(--ncp-green) }
.ncp-steps__item.is-done span { background:var(--ncp-green);color:#fff }
/* #25 Rótulo de etapa mobile */
.ncp-step-mobile-label { display:none;text-align:center;font-size:.8125rem;font-weight:600;color:var(--ncp-text-light);margin-bottom:12px }
@media (max-width:600px) {
  .ncp-steps__item { font-size:.7rem;padding:10px 6px }
  .ncp-steps__item span { display:none }
  .ncp-steps { margin-bottom:4px }
  .ncp-step-mobile-label { display:block }
}

/* #22 Validação inline */
.ncp-input-error { border-color:var(--ncp-red) !important;box-shadow:0 0 0 3px rgba(192,57,43,.12) !important }
.ncp-form-error-msg { font-size:.78rem;color:var(--ncp-red);margin-top:-2px }

.ncp-multistep { background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);padding:32px }
.ncp-step { border:none;padding:0;margin:0 }
.ncp-step-nav { display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--ncp-border) }

/* ── Método de documentação ──────────────────────────────── */
.ncp-doc-method-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:8px }
@media (max-width:560px) { .ncp-doc-method-grid { grid-template-columns:1fr } }
.ncp-doc-method-card input { display:none }
.ncp-doc-method-card__inner { display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;border:2px solid var(--ncp-border);border-radius:var(--ncp-radius);cursor:pointer;text-align:center;transition:all var(--ncp-transition);color:var(--ncp-text-light) }
.ncp-doc-method-card__inner strong { color:var(--ncp-text);font-size:1rem }
.ncp-doc-method-card__inner span { font-size:.875rem }
.ncp-doc-method-card input:checked + .ncp-doc-method-card__inner { border-color:var(--ncp-blue);background:#f0f5ff;color:var(--ncp-blue) }

/* ── Status hero ─────────────────────────────────────────── */
.ncp-status-hero { background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);padding:24px 28px;margin-bottom:28px;border-left:5px solid }
.ncp-status-hero__badge { display:inline-block;padding:6px 18px;border-radius:20px;color:#fff;font-size:.875rem;font-weight:700 }
.ncp-status-hero__alert { margin-top:12px;padding:10px 14px;background:#fff8e1;border-radius:6px;color:#7a5200;font-size:.9rem }
.ncp-status-hero__alert a { color:var(--ncp-blue-light);font-weight:600;margin-left:8px }

/* ── Timeline de status ──────────────────────────────────── */
.ncp-status-timeline { display:flex;overflow-x:auto;gap:0;margin-bottom:32px;background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);padding:20px 16px }
.ncp-status-timeline__item { flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;text-align:center }
.ncp-status-timeline__item:not(:last-child)::after { content:'';position:absolute;top:12px;left:50%;width:100%;height:2px;background:var(--ncp-border) }
.ncp-status-timeline__item.is-done::after { background:var(--ncp-green) }
.ncp-status-timeline__dot { width:24px;height:24px;border-radius:50%;border:2px solid var(--ncp-border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;position:relative;z-index:1;flex-shrink:0;transition:all var(--ncp-transition) }
.ncp-status-timeline__item.is-done .ncp-status-timeline__dot { color:#fff;font-size:.7rem }
.ncp-status-timeline__item.is-current .ncp-status-timeline__dot { box-shadow:0 0 0 4px rgba(37,99,168,.15) }
.ncp-status-timeline__label { font-size:.65rem;color:var(--ncp-text-light);line-height:1.3 }
.ncp-status-timeline__item.is-current .ncp-status-timeline__label { color:var(--ncp-blue);font-weight:700 }

/* ── Portal grid ─────────────────────────────────────────── */
.ncp-portal-grid { display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start }
@media (max-width:900px) { .ncp-portal-grid { grid-template-columns:1fr } }

/* ── Portal cards ────────────────────────────────────────── */
.ncp-portal-card { background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);padding:24px 28px;margin-bottom:24px }
.ncp-portal-card h2 { font-size:1.125rem;margin:0 0 16px;color:var(--ncp-blue) }
.ncp-portal-card h3 { font-size:1rem;margin:0 0 14px;color:var(--ncp-blue) }
.ncp-portal-card__header { display:flex;justify-content:space-between;align-items:center;margin-bottom:16px }
.ncp-portal-card--dark { background:var(--ncp-blue);color:#fff }
.ncp-portal-card--dark h3 { color:#fff }
.ncp-docs-progress { font-size:.875rem;color:var(--ncp-text-light);font-weight:600 }

/* ── Lista de documentos no dashboard ───────────────────── */
.ncp-doc-list { display:flex;flex-direction:column;gap:8px }
.ncp-doc-item { display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;border:1px solid var(--ncp-border);transition:border-color var(--ncp-transition) }
.ncp-doc-item--aprovado  { border-color:#b7ebc8;background:#f0fbf4 }
.ncp-doc-item--rejeitado { border-color:#f5c6c2;background:#fef6f5 }
.ncp-doc-item--pendente  { border-color:#fde8c8;background:#fffbf5 }
.ncp-doc-item__icon { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0 }
.ncp-doc-item--aprovado .ncp-doc-item__icon  { background:#27ae60;color:#fff }
.ncp-doc-item--rejeitado .ncp-doc-item__icon { background:var(--ncp-red);color:#fff }
.ncp-doc-item--pendente .ncp-doc-item__icon  { background:var(--ncp-amber);color:#fff }
.ncp-doc-item--missing .ncp-doc-item__icon   { background:var(--ncp-border);color:var(--ncp-text-light) }
.ncp-doc-item__info { flex:1;min-width:0 }
.ncp-doc-item__label { display:block;font-size:.875rem;font-weight:600;color:var(--ncp-text) }
.ncp-doc-item__motivo { display:block;font-size:.8rem;color:var(--ncp-red);margin-top:2px }
.ncp-doc-item__action { flex-shrink:0 }

/* ── Dados pessoais sidebar ──────────────────────────────── */
.ncp-dados-list { margin:0;display:flex;flex-direction:column;gap:10px }
.ncp-dados-list dt { font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.5);font-weight:600 }
.ncp-dados-list dd { margin:0;font-size:.9375rem;color:rgba(255,255,255,.9) }

/* ── Mensagens da equipe ─────────────────────────────────── */
.ncp-mensagens { display:flex;flex-direction:column;gap:12px }
.ncp-mensagem { padding:14px 16px;background:var(--ncp-bg);border-radius:8px;border-left:3px solid var(--ncp-blue) }
.ncp-mensagem--equipe { background:#f0f7ff;border-left-color:var(--ncp-blue-light) }
.ncp-mensagem__header { display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap }
.ncp-mensagem__status { font-size:.8125rem;font-weight:700;color:var(--ncp-blue) }
.ncp-mensagem__autor  { display:flex;align-items:center;gap:5px;font-size:.8125rem;font-weight:700;color:var(--ncp-blue-light) }
.ncp-mensagem__date   { font-size:.75rem;color:var(--ncp-text-light) }
.ncp-mensagem__texto  { margin:0;font-size:.9375rem;color:var(--ncp-text) }

/* ── Barra de progresso de documentação (#6) ─────────────── */
.ncp-docs-progressbar { height:6px; background:var(--ncp-border); border-radius:3px; margin:10px 0 6px; overflow:hidden; }
.ncp-docs-progressbar__fill { height:100%; background:var(--ncp-green); border-radius:3px; transition:width .4s ease; }
.ncp-docs-complete-msg { margin:0 0 12px; font-size:.875rem; color:var(--ncp-green); font-weight:600; }
.ncp-docs-pct-msg      { margin:0 0 12px; font-size:.8125rem; color:var(--ncp-text-light); }

/* ── Prazo estimado por status (#7) ──────────────────────── */
.ncp-status-prazo {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 8px 14px;
  background: rgba(255,255,255,.12);
  border-radius: 6px;
  font-size: .875rem;
  color: rgba(255,255,255,.85);
}
.ncp-status-prazo svg { flex-shrink:0; opacity:.8; }

/* ── Botão câmera no dropzone (#10) ──────────────────────── */
.ncp-cam-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: .3rem .75rem;
  border: 1.5px solid var(--ncp-border);
  border-radius: 6px;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--ncp-blue);
  cursor: pointer;
  transition: background var(--ncp-transition);
  margin-top: 6px;
}
.ncp-cam-label:hover { background: var(--ncp-bg); }
@media (min-width: 769px) {
  /* Oculta em desktop — câmera só faz sentido em mobile */
  .ncp-cam-label { display: none; }
}

/* ── Badge mensagens não lidas ───────────────────────────── */
.ncp-msgs-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: .4rem .9rem;
  background: #e67e22;
  color: #fff;
  border-radius: 20px;
  font-size: .8125rem;
  font-weight: 700;
  animation: ncp-pulse 1.8s ease-in-out infinite;
}
@keyframes ncp-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .7; }
}

/* ── Upload de documentos ────────────────────────────────── */
.ncp-docs-info { background:#fff;border-radius:var(--ncp-radius);padding:16px 20px;margin-bottom:24px;box-shadow:var(--ncp-shadow);color:var(--ncp-text-light);font-size:.9375rem }
.ncp-docs-grid { display:flex;flex-direction:column;gap:12px }
.ncp-upload-card { background:#fff;border-radius:var(--ncp-radius);box-shadow:var(--ncp-shadow);overflow:hidden;border:1px solid var(--ncp-border) }
.ncp-upload-card--aprovado { border-color:#b7ebc8 }
.ncp-upload-card--rejeitado{ border-color:#f5c6c2 }
.ncp-upload-card__header { display:flex;align-items:center;gap:12px;padding:16px 20px }
.ncp-upload-card__icon { font-size:1.125rem;flex-shrink:0 }
.status-ok   { color:var(--ncp-green) }
.status-rej  { color:var(--ncp-red) }
.status-pend { color:var(--ncp-amber) }
.status-miss { color:var(--ncp-border) }
.ncp-upload-card__info { flex:1;min-width:0 }
.ncp-upload-card__info strong { display:block;font-size:.9375rem;color:var(--ncp-text) }
.ncp-doc-tag { display:inline-block;margin-top:3px;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600 }
.ncp-doc-tag--ok   { background:#edfaf1;color:#1a6b3c }
.ncp-doc-tag--rej  { background:#fdecea;color:#7a1c12 }
.ncp-doc-tag--pend { background:#fff8e1;color:#7a5200 }
.ncp-upload-toggle { background:none;border:1px solid var(--ncp-border);border-radius:6px;padding:4px 10px;font-size:.8125rem;cursor:pointer;color:var(--ncp-text-light);flex-shrink:0 }
.ncp-upload-area { padding:0 20px 20px }
.ncp-dropzone { border:2px dashed var(--ncp-border);border-radius:10px;padding:28px 16px;text-align:center;cursor:pointer;transition:border-color var(--ncp-transition),background var(--ncp-transition) }
.ncp-dropzone.is-dragover { border-color:var(--ncp-blue-light);background:#f0f5ff }
.ncp-dropzone p { margin:8px 0 4px;font-size:.9375rem;color:var(--ncp-text-light) }
.ncp-dropzone small { font-size:.8rem;color:var(--ncp-border) }
.ncp-file-label { color:var(--ncp-blue-light);cursor:pointer;font-weight:600;text-decoration:underline }
.ncp-upload-preview { background:var(--ncp-bg);border-radius:8px;padding:14px 16px;margin-top:12px;display:flex;flex-direction:column;gap:10px }
.ncp-upload-preview__file { display:flex;justify-content:space-between;font-size:.875rem }
.ncp-upload-preview__name { font-weight:600;color:var(--ncp-text) }
.ncp-upload-preview__size { color:var(--ncp-text-light) }
.ncp-progress-bar { height:6px;background:var(--ncp-border);border-radius:3px;overflow:hidden }
.ncp-progress-fill { height:100%;background:var(--ncp-blue);width:0;transition:width .3s ease }
.ncp-upload-card__view { padding:8px 20px 16px }
.ncp-docs-footer { margin-top:24px;text-align:center }

/* ── Empty state ─────────────────────────────────────────── */
.ncp-portal-empty { text-align:center;padding:32px 16px;color:var(--ncp-text-light) }
.ncp-portal-empty a { margin-top:12px }
.ncp-portal-empty__icon { font-size:2rem;margin-bottom:12px }
.ncp-pending-checklist { list-style:none;margin:0 0 4px;padding:0;display:inline-flex;flex-direction:column;gap:6px;text-align:left }
.ncp-pending-checklist li { display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--ncp-text) }
.ncp-pending-checklist li::before { content:'○';color:var(--ncp-border);font-size:1rem;flex-shrink:0 }

/* ── Botão editar dados (sidebar) ────────────────────────── */
.ncp-btn-edit-dados { display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:600;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:6px;padding:4px 10px;cursor:pointer;transition:background var(--ncp-transition) }
.ncp-btn-edit-dados:hover { background:rgba(255,255,255,.25) }

/* ── Modal ───────────────────────────────────────────────── */
.ncp-modal { position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px }
.ncp-modal__backdrop { position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px) }
.ncp-modal__box { position:relative;background:#fff;border-radius:var(--ncp-radius);box-shadow:0 20px 60px rgba(0,0,0,.25);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:32px }
.ncp-modal__header { display:flex;justify-content:space-between;align-items:center;margin-bottom:24px }
.ncp-modal__header h2 { margin:0;font-size:1.25rem;color:var(--ncp-blue) }
.ncp-modal__close { background:none;border:none;font-size:1.5rem;color:var(--ncp-text-light);cursor:pointer;padding:0;line-height:1;transition:color var(--ncp-transition) }
.ncp-modal__close:hover { color:var(--ncp-text) }
.ncp-modal__footer { display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--ncp-border) }
@media (max-width:480px) { .ncp-modal__box { padding:24px 20px } .ncp-modal__footer { flex-direction:column-reverse } .ncp-modal__footer .ncp-btn { width:100%;justify-content:center } }

/* ── FAQ documentação ────────────────────────────────────── */
.ncp-docs-faq { margin-bottom:24px }
.ncp-faq-toggle { display:flex;align-items:center;gap:8px;width:100%;background:#fff;border:1px solid var(--ncp-border);border-radius:var(--ncp-radius);padding:14px 20px;font-family:inherit;font-size:.9375rem;font-weight:600;color:var(--ncp-blue);cursor:pointer;transition:background var(--ncp-transition),border-color var(--ncp-transition);text-align:left }
.ncp-faq-toggle:hover { background:#f5f8ff;border-color:var(--ncp-blue-light) }
.ncp-faq-toggle[aria-expanded="true"] { border-bottom-left-radius:0;border-bottom-right-radius:0 }
.ncp-faq-toggle__arrow { margin-left:auto;font-size:.8rem;transition:transform var(--ncp-transition) }
.ncp-faq-toggle[aria-expanded="true"] .ncp-faq-toggle__arrow { transform:rotate(180deg) }
.ncp-faq-body { background:#fff;border:1px solid var(--ncp-border);border-top:none;border-radius:0 0 var(--ncp-radius) var(--ncp-radius);padding:20px 24px }
.ncp-faq-list { margin:0;padding:0 }
.ncp-faq-item { border-bottom:1px solid var(--ncp-border);padding:14px 0 }
.ncp-faq-item:last-child { border-bottom:none;padding-bottom:0 }
.ncp-faq-item dt { font-weight:700;color:var(--ncp-text);font-size:.9375rem;margin-bottom:6px }
.ncp-faq-item dd { margin:0;font-size:.9rem;color:var(--ncp-text-light);line-height:1.5 }

/* ── Image preview no upload ─────────────────────────────── */
.ncp-upload-preview__img { width:100%;max-height:180px;object-fit:contain;border-radius:6px;border:1px solid var(--ncp-border);background:var(--ncp-bg) }
.ncp-upload-preview__pdf-icon { display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:600;color:var(--ncp-red);padding:8px 0 }

/* ── Cadastro — hero badges e CTA WhatsApp ───────────────── */
.ncp-hero-badges { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px }
.ncp-hero-badge { display:block;padding:5px 13px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:20px;font-size:.8rem;font-weight:600;color:#fff;white-space:nowrap }
.ncp-hero-wpp { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.15) }
.ncp-hero-wpp span { font-size:.875rem;color:rgba(255,255,255,.65) }

/* ── Faixa "como funciona" ───────────────────────────────── */
.ncp-how-strip { background:#fff;border-bottom:1px solid var(--ncp-border);padding:13px 0 }
.ncp-how-strip__list { display:flex;align-items:center;flex-wrap:wrap;gap:6px 0;font-size:.8125rem;color:var(--ncp-text-light) }
.ncp-how-strip__step { display:flex;align-items:center;gap:0;white-space:nowrap }
.ncp-how-strip__num { display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--ncp-blue);color:#fff;border-radius:50%;font-size:.7rem;font-weight:700;margin-right:5px;flex-shrink:0 }
.ncp-how-strip__sep { color:#c0cad6;margin:0 8px;font-size:.75rem }
@media (max-width:560px) { .ncp-how-strip__sep { display:none } .ncp-how-strip__step { margin-bottom:4px } }

/* ── Intro de etapa ──────────────────────────────────────── */
.ncp-step-intro { margin-bottom:20px;padding:13px 16px;background:#f0f5ff;border-left:3px solid var(--ncp-blue-light);border-radius:0 6px 6px 0 }
.ncp-step-intro strong { display:block;font-size:.9375rem;color:var(--ncp-blue);margin-bottom:2px }
.ncp-step-intro span { font-size:.8125rem;color:var(--ncp-text-light) }

/* ── Info box inline ─────────────────────────────────────── */
.ncp-info-box { display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#fafbff;border:1px solid #dde8fa;border-radius:8px;font-size:.875rem;color:var(--ncp-text-light);margin:4px 0 8px }
.ncp-info-box svg { flex-shrink:0;margin-top:2px;color:var(--ncp-blue-light) }
.ncp-info-box strong { color:var(--ncp-text) }

/* ── Botão CTA de etapa ──────────────────────────────────── */
.ncp-btn--step-cta { padding:.7rem 1.4rem;font-size:.9375rem }
.ncp-btn--submit-final { background:#1a6b3c !important;border-color:#1a6b3c !important }
.ncp-btn--submit-final:hover { background:#145a30 !important }

/* ── Hint de privacidade (step 1) ────────────────────────── */
.ncp-privacy-hint { font-size:.78rem;color:var(--ncp-text-light);display:flex;align-items:center;gap:4px;margin:0 }
.ncp-privacy-hint svg { flex-shrink:0 }
@media (max-width:560px) { .ncp-privacy-hint { display:none } }

/* ── Disclaimer submit ───────────────────────────────────── */
.ncp-submit-disclaimer { font-size:.78rem;color:var(--ncp-text-light);text-align:center;margin-top:12px }
.ncp-submit-disclaimer a { color:var(--ncp-blue-light);text-decoration:underline }

/* ── Trust strip abaixo do form ──────────────────────────── */
.ncp-form-trust { display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;margin-top:24px;padding-top:20px;border-top:1px solid var(--ncp-border);font-size:.8125rem;color:var(--ncp-text-light) }
.ncp-form-trust strong { color:var(--ncp-text) }
