/*
 * ATPV Online Portal — acabamento visual global 3.6.0
 * Carregado por último para neutralizar interferências do tema/Elementor.
 */

.atpv-shell {
  --atpv-navy: #0b3045;
  --atpv-navy-deep: #061f2e;
  --atpv-teal: #0e6671;
  --atpv-teal-dark: #0a515a;
  --atpv-gold: #b58b51;
  --atpv-bg: #f4f8f9;
  --atpv-card: #ffffff;
  --atpv-text: #17303d;
  --atpv-muted: #687b85;
  --atpv-border: #dce6e9;
  --atpv-border-strong: #c8d7dc;
  --atpv-danger: #b42318;
  --atpv-radius-sm: 10px;
  --atpv-radius-md: 14px;
  --atpv-radius-lg: 20px;
  --atpv-shadow-soft: 0 12px 34px rgba(8, 45, 61, .07);
  --atpv-shadow-card: 0 22px 58px rgba(8, 45, 61, .09);
  width: 100% !important;
  max-width: none !important;
  color: var(--atpv-text) !important;
  font-family: "Manrope", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.atpv-shell,
.atpv-shell *,
.atpv-shell *::before,
.atpv-shell *::after {
  box-sizing: border-box !important;
}

.atpv-shell :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, fieldset) {
  margin-top: 0;
}

.atpv-shell :where(h1, h2, h3, h4) {
  color: var(--atpv-navy) !important;
  font-family: "Sora", "Manrope", sans-serif !important;
  font-style: normal !important;
  text-transform: none !important;
}

.atpv-shell h1 {
  font-weight: 700 !important;
  letter-spacing: -.045em !important;
}

.atpv-shell h2,
.atpv-shell h3,
.atpv-shell h4 {
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
}

.atpv-shell :where(p, li, dd, figcaption) {
  font-weight: 500 !important;
}

.atpv-shell :where(strong, b) {
  font-weight: 700 !important;
}

.atpv-shell :where(.atpv-kicker, .atpv-section-kicker) {
  font-weight: 800 !important;
}

/* Estrutura e cartões */
.atpv-shell > * {
  min-width: 0 !important;
}

.atpv-card,
.atpv-form-card,
.atpv-payment-main,
.atpv-order-summary,
.atpv-information-card,
.atpv-documents-card,
.atpv-prevalidation-card,
.atpv-result-card,
.atpv-dashboard-section,
.atpv-card--timeline {
  min-width: 0 !important;
  border: 1px solid rgba(11, 48, 69, .10) !important;
  border-radius: var(--atpv-radius-lg) !important;
  background: var(--atpv-card) !important;
  box-shadow: var(--atpv-shadow-card) !important;
}

.atpv-form-heading,
.atpv-dashboard-head,
.atpv-section-head,
.atpv-card-head,
.atpv-data-review-head,
.atpv-benefit-head,
.atpv-next-action,
.atpv-status-hero,
.atpv-form-submit-row {
  min-width: 0 !important;
}

.atpv-form-heading > *,
.atpv-dashboard-head > *,
.atpv-section-head > *,
.atpv-data-review-head > *,
.atpv-status-hero > *,
.atpv-next-action > * {
  min-width: 0 !important;
}

/* Formulários: neutraliza estilos externos e mantém todas as colunas alinhadas */
.atpv-shell .atpv-form,
.atpv-shell .atpv-information-form,
.atpv-shell .atpv-benefit-form {
  min-width: 0 !important;
  align-content: start !important;
}

.atpv-shell .atpv-form label:not(.atpv-check):not(.atpv-check--issuance):not(.atpv-choice):not(.atpv-file-field),
.atpv-shell .atpv-information-form label:not(.atpv-check):not(.atpv-check--issuance):not(.atpv-choice):not(.atpv-file-field),
.atpv-shell .atpv-benefit-form label:not(.atpv-check):not(.atpv-check--issuance):not(.atpv-choice):not(.atpv-file-field) {
  min-width: 0 !important;
  width: 100% !important;
  height: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  align-self: start !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.atpv-shell .atpv-grid-2,
.atpv-shell .atpv-grid-3,
.atpv-shell .atpv-address-grid {
  min-width: 0 !important;
  align-items: start !important;
  align-content: start !important;
}

.atpv-shell .atpv-grid-2 > *,
.atpv-shell .atpv-grid-3 > *,
.atpv-shell .atpv-address-grid > * {
  min-width: 0 !important;
  align-self: start !important;
}

.atpv-shell .atpv-form label > span,
.atpv-shell .atpv-information-form label > span,
.atpv-shell .atpv-benefit-form label > span,
.atpv-shell .atpv-payment-options > legend,
.atpv-shell .atpv-form-title {
  min-height: 20px;
  display: flex !important;
  align-items: flex-end !important;
  color: #314b57 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

.atpv-shell .atpv-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.atpv-shell .atpv-form select,
.atpv-shell .atpv-form textarea,
.atpv-shell .atpv-benefit-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.atpv-shell .atpv-benefit-form select,
.atpv-shell .atpv-benefit-form textarea {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  border: 1px solid var(--atpv-border-strong) !important;
  border-radius: 11px !important;
  color: var(--atpv-text) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: "Manrope", Inter, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

.atpv-shell .atpv-form textarea,
.atpv-shell .atpv-benefit-form textarea {
  min-height: 116px !important;
  line-height: 1.55 !important;
  resize: vertical !important;
}

.atpv-shell .atpv-form input:focus,
.atpv-shell .atpv-form select:focus,
.atpv-shell .atpv-form textarea:focus,
.atpv-shell .atpv-benefit-form input:focus,
.atpv-shell .atpv-benefit-form select:focus,
.atpv-shell .atpv-benefit-form textarea:focus {
  border-color: var(--atpv-teal) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 4px rgba(14, 102, 113, .10) !important;
}

.atpv-shell .atpv-form input[readonly],
.atpv-shell .atpv-form input:disabled,
.atpv-shell .atpv-form select:disabled,
.atpv-shell .atpv-form textarea:disabled {
  color: #536874 !important;
  background: #f2f6f7 !important;
  opacity: 1 !important;
}

.atpv-shell :where(.atpv-field-error, .atpv-field-status, .atpv-form small, .atpv-form label > small) {
  width: 100% !important;
  min-height: 18px;
  margin: 0 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

.atpv-shell .atpv-field-error {
  color: var(--atpv-danger) !important;
  font-weight: 700 !important;
}

.atpv-shell .atpv-field-invalid {
  align-self: start !important;
}

/* Botões e ações */
.atpv-shell .atpv-button,
.atpv-shell .atpv-file-button,
.atpv-shell .atpv-copy-button {
  min-height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  margin: 0 !important;
  padding: 13px 21px !important;
  border-radius: 11px !important;
  font-family: "Manrope", Inter, system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-transform: none !important;
  white-space: normal !important;
}

.atpv-shell .atpv-button--secondary {
  border-color: var(--atpv-border-strong) !important;
  color: var(--atpv-navy) !important;
  background: #fff !important;
}

.atpv-shell .atpv-text-button,
.atpv-shell .atpv-page-tools a,
.atpv-shell .atpv-section-head > a {
  font-size: 13px !important;
  font-weight: 700 !important;
}

/* Seções e blocos */
.atpv-form-section {
  min-width: 0 !important;
  display: grid !important;
  align-content: start !important;
  gap: 22px !important;
  padding: 30px !important;
  border: 1px solid rgba(11, 48, 69, .09) !important;
  border-radius: 17px !important;
  background: #fbfcfc !important;
}

.atpv-form-section-head {
  min-width: 0 !important;
  margin: 0 !important;
}

.atpv-form-section-head h2 {
  margin: 0 0 7px !important;
  font-weight: 700 !important;
}

.atpv-form-section-head p {
  margin: 0 !important;
  color: var(--atpv-muted) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
}

.atpv-data-review {
  min-width: 0 !important;
  gap: 22px !important;
  padding: 28px !important;
  border-radius: 18px !important;
}

.atpv-data-review-head {
  align-items: center !important;
}

.atpv-review-warning {
  margin: 0 !important;
  color: var(--atpv-danger) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

.atpv-review-warning strong {
  font-weight: 800 !important;
}

.atpv-review-details {
  align-items: stretch !important;
  gap: 12px !important;
}

.atpv-review-details > div {
  min-height: 92px;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 17px 18px !important;
  border-radius: 13px !important;
}

.atpv-review-details > div:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.atpv-review-details dt {
  margin: 0 !important;
  color: var(--atpv-muted) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: .06em !important;
}

.atpv-review-details dd {
  margin: 0 !important;
  color: var(--atpv-navy) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

.atpv-upload-list {
  align-items: stretch !important;
}

.atpv-upload-card {
  min-width: 0 !important;
  display: grid !important;
  align-content: start !important;
  gap: 18px !important;
  height: 100% !important;
  padding: 24px !important;
  border: 1px solid var(--atpv-border) !important;
  border-radius: 15px !important;
  background: #fff !important;
}

.atpv-upload-copy {
  min-width: 0 !important;
  align-items: flex-start !important;
}

.atpv-upload-copy h2 {
  margin: 0 0 6px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.atpv-upload-copy p {
  margin: 0 !important;
  color: var(--atpv-muted) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

.atpv-current-file {
  min-width: 0 !important;
  align-items: center !important;
}

.atpv-current-file-actions {
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
}

.atpv-file-field {
  min-width: 0 !important;
  align-items: stretch !important;
}

/* Escolhas e pagamentos */
.atpv-choice,
.atpv-payment-option,
.atpv-check,
.atpv-check--issuance {
  font-family: "Manrope", Inter, system-ui, sans-serif !important;
}

.atpv-choice,
.atpv-payment-option {
  min-width: 0 !important;
  align-items: center !important;
}

.atpv-choice strong,
.atpv-payment-option strong {
  font-weight: 700 !important;
}

.atpv-choice small,
.atpv-payment-option small,
.atpv-check > span,
.atpv-check--issuance > span {
  font-weight: 500 !important;
}

/* Área do cliente */
.atpv-dashboard-head {
  align-items: flex-end !important;
}

.atpv-dashboard-head h1,
.atpv-dashboard-head p {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.atpv-request-tabs {
  align-items: stretch !important;
}

.atpv-request-tabs a {
  min-width: 190px !important;
  display: grid !important;
  align-content: start !important;
  gap: 4px !important;
  padding: 14px 16px !important;
}

.atpv-request-tabs :where(span, strong, small) {
  line-height: 1.4 !important;
}

.atpv-request-tabs strong {
  font-weight: 700 !important;
}

.atpv-status-hero {
  align-items: center !important;
}

.atpv-status-hero h2 {
  margin-bottom: 8px !important;
  font-weight: 700 !important;
}

.atpv-status-hero p {
  margin: 0 !important;
  font-weight: 500 !important;
}

.atpv-dashboard-metrics {
  align-items: stretch !important;
}

.atpv-dashboard-metrics article {
  min-width: 0 !important;
  min-height: 104px;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 6px !important;
  height: 100% !important;
}

.atpv-dashboard-metrics span {
  font-weight: 700 !important;
}

.atpv-dashboard-metrics strong {
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.atpv-next-action {
  align-items: center !important;
}

.atpv-next-action h2 {
  margin-bottom: 6px !important;
}

.atpv-next-action p {
  margin: 0 !important;
}

.atpv-dashboard-grid {
  align-items: start !important;
}

.atpv-dashboard-section {
  min-width: 0 !important;
}

.atpv-timeline article,
.atpv-message-list article {
  min-width: 0 !important;
}

.atpv-timeline strong,
.atpv-message-list strong {
  font-weight: 700 !important;
}

.atpv-timeline p,
.atpv-message-list p {
  color: var(--atpv-muted) !important;
  font-weight: 500 !important;
}

.atpv-details {
  align-items: stretch !important;
}

.atpv-details > div {
  min-width: 0 !important;
  height: 100% !important;
}

.atpv-details dt {
  font-weight: 700 !important;
}

.atpv-details dd {
  font-weight: 600 !important;
}

.atpv-table-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

.atpv-table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.atpv-table th {
  font-weight: 800 !important;
}

.atpv-table td {
  font-weight: 500 !important;
}

/* Resultados, avisos e modal */
.atpv-notice,
.atpv-result-note,
.atpv-document-guidance,
.atpv-consent-box,
.atpv-payment-instructions,
.atpv-prevalidation-acceptance,
.atpv-benefit-box,
.atpv-issuance-consent {
  min-width: 0 !important;
  font-weight: 500 !important;
}

.atpv-notice strong,
.atpv-result-note strong,
.atpv-document-guidance strong {
  font-weight: 700 !important;
}

.atpv-validation-dialog,
.atpv-validation-dialog * {
  font-family: "Manrope", Inter, system-ui, sans-serif !important;
}

.atpv-validation-dialog__inner h2 {
  font-family: "Sora", "Manrope", sans-serif !important;
  font-weight: 700 !important;
}

/* Tablet */
@media (max-width: 960px) {
  .atpv-data-review-head,
  .atpv-dashboard-head,
  .atpv-next-action,
  .atpv-status-hero,
  .atpv-form-heading,
  .atpv-form-submit-row {
    align-items: stretch !important;
  }

  .atpv-data-review-head .atpv-button,
  .atpv-dashboard-head .atpv-button,
  .atpv-next-action .atpv-button {
    flex: 0 0 auto;
  }
}

/* Mobile */
@media (max-width: 782px) {
  .atpv-shell {
    padding: 32px 12px 52px !important;
    font-size: 15px;
  }

  .atpv-card,
  .atpv-form-card,
  .atpv-payment-main,
  .atpv-order-summary,
  .atpv-information-card,
  .atpv-documents-card,
  .atpv-prevalidation-card,
  .atpv-result-card,
  .atpv-dashboard-section,
  .atpv-card--timeline {
    padding: 22px 16px !important;
    border-radius: 16px !important;
  }

  .atpv-shell h1,
  .atpv-form-heading h1,
  .atpv-prevalidation-intro h1,
  .atpv-result-card h1,
  .atpv-dashboard-head h1 {
    font-size: clamp(30px, 9vw, 38px) !important;
    line-height: 1.1 !important;
  }

  .atpv-shell h2,
  .atpv-question-block h2,
  .atpv-form-section-head h2 {
    font-size: clamp(22px, 6.4vw, 28px) !important;
    line-height: 1.2 !important;
  }

  .atpv-form-section,
  .atpv-data-review,
  .atpv-upload-card,
  .atpv-document-guidance,
  .atpv-consent-box,
  .atpv-payment-instructions,
  .atpv-prevalidation-acceptance,
  .atpv-benefit-box,
  .atpv-issuance-consent {
    padding: 18px 14px !important;
    border-radius: 14px !important;
  }

  .atpv-shell .atpv-grid-2,
  .atpv-shell .atpv-grid-3,
  .atpv-shell .atpv-address-grid,
  .atpv-review-details,
  .atpv-result-summary,
  .atpv-dashboard-metrics,
  .atpv-details {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .atpv-review-details > div:last-child:nth-child(odd) {
    grid-column: auto;
  }

  .atpv-data-review-head,
  .atpv-dashboard-head,
  .atpv-next-action,
  .atpv-status-hero,
  .atpv-form-heading,
  .atpv-form-submit-row,
  .atpv-current-file,
  .atpv-section-head,
  .atpv-benefit-head {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
  }

  .atpv-data-review-head .atpv-button,
  .atpv-dashboard-head .atpv-button,
  .atpv-next-action .atpv-button,
  .atpv-form-submit-row .atpv-button,
  .atpv-current-file .atpv-button,
  .atpv-file-button,
  .atpv-copy-button {
    width: 100% !important;
  }

  .atpv-shell .atpv-form label > span,
  .atpv-shell .atpv-information-form label > span,
  .atpv-shell .atpv-benefit-form label > span {
    min-height: 0;
    align-items: flex-start !important;
  }

  .atpv-shell .atpv-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
  .atpv-shell .atpv-form select,
  .atpv-shell .atpv-form textarea,
  .atpv-shell .atpv-benefit-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
  .atpv-shell .atpv-benefit-form select,
  .atpv-shell .atpv-benefit-form textarea {
    min-height: 52px !important;
    padding: 13px 14px !important;
    font-size: 16px !important;
  }

  .atpv-request-tabs {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    overflow: visible !important;
  }

  .atpv-request-tabs a {
    min-width: 0 !important;
    width: 100% !important;
  }

  .atpv-dashboard-metrics article,
  .atpv-review-details > div {
    min-height: auto;
  }

  .atpv-status-protocol {
    width: 100% !important;
  }

  .atpv-current-file-actions {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  .atpv-page-tools {
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }

  .atpv-table {
    min-width: 620px !important;
  }
}

@media (max-width: 480px) {
  .atpv-shell {
    padding-inline: 9px !important;
  }

  .atpv-card,
  .atpv-form-card,
  .atpv-payment-main,
  .atpv-order-summary,
  .atpv-information-card,
  .atpv-documents-card,
  .atpv-prevalidation-card,
  .atpv-result-card,
  .atpv-dashboard-section,
  .atpv-card--timeline {
    padding-inline: 14px !important;
  }

  .atpv-shell .atpv-button,
  .atpv-shell .atpv-file-button,
  .atpv-shell .atpv-copy-button {
    min-height: 50px !important;
    padding-inline: 14px !important;
    font-size: 13px !important;
  }

  .atpv-review-warning {
    font-size: 14px !important;
  }
}
